C++가 은근슬쩍 만들어 호출해 버리는 함수들에 촉각을 세우자.



생성자

새로운 객체를 메모리에 만드는 데 필요한 과정을

제어하고 객체의 초기화를 맡는 함수


소멸자

객체를 없앰과 동시에 그 객체가 메모리에서

적절히 사라질 수 있도록 하는 과정을 제어하는 함수


대입 연산자

기존의 객체에 다른 객체의 값을 줄 때 사용하는 함수


컴파일러가 저절로 선언해 주도록 되어 있는 것들

생성자, 복사 생성자, 복사 대입 연산자, 소멸자

--> 모두 public, inline

기본적인 내용이기 때문에 예시는 생략한다.



1. C++의 참조자는 원래 자신이 참조하고 있는 것 외에 다른 객체를 참조할 수 없다.

(초기화 시에 이미 참조를 결정한다.)

2. const 또한 참조와 마찬가지로 한번 정해진 값을 바꿀 수 없다.


이러한 부분들이 컴파일러에 의해 만들어지는 기본 대입연산자로

처리하기가 상당히 애매한 부분이 될 수 있다.

--> 자신이 직접 대입 연산자를 정의하여 사용해야 한다.


짚고 넘어가기

대입 연산자를 private로 선언할 경우

이 클래스로부터 파생된 클래스는

기본 대입 연산자를 가질 수 없다.



POINT!!


컴파일러는 기본 생성자, 복사 생성자, 복사 대입 연산자, 소멸자를

암시적(디폴트) 으로 만들어 놓을 수 있다.

+ Recent posts