생성자

생성자 혹은 소멸자 안에서 가상 함수를 호출하지 마라. 가상 함수라고 해도, 지금 실행 중인 생성자나 소멸자에 해당되는 클래스의 파생 클래스 쪽으로 내려가지 않는다. 객체 생성 및 소멸 중 가상 함수 금지 객체 생성 및 소멸 과정 중에는 절대로 가상 함수를 호출하면 안된다. class Transaction { // 기본 클래스 public: Transaction(); virtual void logTransaction() const = 0; // 순수 가상함수(로깅) ... }; Transaction::Transaction() // 기본 클래스 생성자 { ... logTransaction(); } class BuyTransaction: public Transaction { // Transaction의 파생..
컴파일러는 경우에 따라 클래스에 대해 기본 생성자, 복사 생성자, 복사 대입 연산자, 소멸자를 암시적으로 만들 수 있다. C++이 자동 생성하는 함수들 C++ 클래스는 생성자와 소멸자, 대입 연산자를 포함한다. 생성자는 새로운 객체를 메모리에 만드는데 필요한 과정을 제어하고 객체의 초기화를 진행한다. 소멸자는 객체를 없앰과 동시에 그 객체가 메모리에서 적절히 사라질 수 있도록 하는 과정을 제어한다. 대입 연산자는 기존의 객체에 다른 객체의 값을 줄 때 사용하는 함수이다. 이러한 것들은 유용하면서도 위험할 수 있는 함수들이다. C++이 스스로 만드는 함수 C++은 복사 생성자, 복사 대입 연산자, 소멸자를 직접 선언하지 않으면 스스로 생성한다. 이들은 모두 public 멤버이며 inline함수이다. cla..