* has ~ a 관계 외부 에서 입력한 데이터를 데이터_관리_class를 통해 데이터_class에 넘기고 받을 수 있으며 다른 객체를 멤버로 선언한 관계이다. 이때 데이터_class는 입력된 데이터만 관리하며 외부에서 접근 할수 없는 구조로 되어 있다. 데이터_class는 오직 데이터_관리_class를 통해서만 전달받고 전송 할수 있는 구조이다. 따라서 데이터_class는 캡슐같은 구조로 외부로부터 데이터를 은닉, 보호 하고 있으며 외부에서는 데이터_class가 있는지 조차 알 수 없다. has ~ a 관계를 만들기위해선 조건이 있는데, 데이터_관리_class가 데이터_class를 연결하려면 데이터_class 타입의 객체가 반드시 존재해야 한다. has ~a 관계의 장점은 데이터를 은닉, 보호할 수 있..
* const(상수화 멤버) - c++에서는 멤버 필드 중에 값을 변경하지 못하는 상수화 멤버 필드와 메소드 내에서 객체의 상태를 변경하지 못하는 상수화 메소드를 지정할 수 있다. - 상수화 멤버 필드는 선언문 앞에 const 키워드를 붙여주고 상수화 멤버 메소드는 입력 인자를 명시하는 괄호 뒤에 const 키워드를 붙여준다. ex : int tistory() const; - 예를들어, 학생 생성 시 학번을 부여하고 이후에는 학번을 변경하지 못하게 하고자 한다면 상수화 멤버 필드로 사용할 수 있다. 상수화 멤버 필드는 생성자 정의문에서 초기화 기법을 사용하여 값을 지정해야 한다. 초기화 기법은 생성자 메소드의 입력 인자를 명시하는 함수 뒤에 콜론(:)을 붙인 후에 초기화할 멤버 이름을 명시하고 괄호에 초..
* class 구조 1. 생성자함수 2. 복사생성자함수 3. 소멸자 함수 4. 대입연산자 함수 * 소멸자 c++은 java나 c#과 달리 플랫폼에서 개체들을 관리하지 않는다. 따라서 c++에서는 생성한 개체의 소멸에 관한 책임을 개발자가 져야한다. 소멸자도 생성자처럼 직접 호출하지 않고 delete 연산자를 사용해야한다. 또한 소멸자는 생성자와 다르게 중복 정의할 수 없다. 소멸자도 개발자가 정의하지 않으면 컴파일러에 의해 디폴트 소멸자가 만들어진다. 하지만 개체 내부에서 동적으로 다른 개체를 생성하였다면 소멸자를 정의하여 동적으로 만든 개체를 소멸해야 한다. * 소멸자함수를 쓰는 이유 동적메모리를 할당 하고 난뒤 쓰레기값이 남게된다. 프로세스를 다 돌리고 난 후 쓰레기 메모리 값을 소멸해주지 않으면 다..