C++가 은근슬쩍 만들어 호출해 버리는 함수들에 촉각을 세우자.
생성자
새로운 객체를 메모리에 만드는 데 필요한 과정을
제어하고 객체의 초기화를 맡는 함수
소멸자
객체를 없앰과 동시에 그 객체가 메모리에서
적절히 사라질 수 있도록 하는 과정을 제어하는 함수
대입 연산자
기존의 객체에 다른 객체의 값을 줄 때 사용하는 함수
컴파일러가 저절로 선언해 주도록 되어 있는 것들
생성자, 복사 생성자, 복사 대입 연산자, 소멸자
--> 모두 public, inline
기본적인 내용이기 때문에 예시는 생략한다.
1. C++의 참조자는 원래 자신이 참조하고 있는 것 외에 다른 객체를 참조할 수 없다.
(초기화 시에 이미 참조를 결정한다.)
2. const 또한 참조와 마찬가지로 한번 정해진 값을 바꿀 수 없다.
이러한 부분들이 컴파일러에 의해 만들어지는 기본 대입연산자로
처리하기가 상당히 애매한 부분이 될 수 있다.
--> 자신이 직접 대입 연산자를 정의하여 사용해야 한다.
짚고 넘어가기
대입 연산자를 private로 선언할 경우
이 클래스로부터 파생된 클래스는
기본 대입 연산자를 가질 수 없다.
POINT!!
컴파일러는 기본 생성자, 복사 생성자, 복사 대입 연산자, 소멸자를
암시적(디폴트) 으로 만들어 놓을 수 있다.
'C++ 심화' 카테고리의 다른 글
[C++] 가상(virtual) 소멸자 (0) | 2016.12.18 |
---|---|
[C++] 컴파일러가 만들어낸 함수가 필요 없을 때 (0) | 2016.12.18 |
[C++] 객체의 초기화 (0) | 2016.12.15 |
[C++] const의 활용 (0) | 2016.12.15 |
[C++] #define 대신 const, enum, inline를 쓰자. (0) | 2016.12.14 |