Notice
Recent Posts
Recent Comments
Link
목록2026/05/26 (1)
Sonji-log
[Effective C++] Cp 7. 다형성을 가진 기본 클래스에서는 소멸자를 반드시 가상 소멸자로 선언하자
1. 이 항목이 왜 중요한가C++에서는 기본 클래스(base class) 포인터로 파생 클래스(derived class) 객체를 다루는 일이 아주 흔하다. 다형성(polymorphism)을 쓰는 코드라면 거의 항상 이런 형태가 나온다.Base* p = new Derived();// ...delete p;겉보기에는 꽤 자연스럽지만, 여기에는 함정이 하나 숨어 있다.만약 Base의 소멸자가 가상 함수(virtual function)가 아니라면, delete p를 했을 때 무슨 일이 벌어질까?결론부터 말하면 정의되지 않은 동작(undefined behavior)이 수행된다. 보통은 다음과 같은 일이 일어난다.객체의 기본 클래스 부분(Base)은 소멸된다.하지만 파생 클래스 부분(Derived)은 소멸되지 않는..
책/Effective C++
2026. 5. 26. 11:39
