가상 소멸자1 [ C++ ] 가상 소멸자( Virtual Destructor ) 말 그대로 virtual로 선언된 소멸자를 가상 소멸자( Virtual Destructor )라고 한다. 근데 왜 소멸자에 virtual 선언이 필요할까? 먼저 예제를 보자. ( * 혹시 VS에서 위 코드를 작성하다가 다음과 같은 에러가 발생한 경우, "const char * 형식의 인수가 char * 형식의 매개 변수와 호환되지 않습니다" 프로젝트( 오른쪽 클릭 ) > 속성 > C/C++ > 언어 > 준수 모드 > 아니오로 바꿔주면 해결된다. VS 2015에는 가능한데 VS 2017부터 준수 모드가 생겨서 생긴 문제이다. ) 결과에서 보이듯이 객체의 소멸을 A형 포인터로 명령하니, A 클래스의 소멸자만 호출되었다. 따라서 strB가 남아있어, 메모리 누수가 발생하게 된다. 즉, 객체의 소멸과정에서는 포.. 2019. 10. 10. 이전 1 다음