다음 코드를 수행하면 pure virtual function call 에러가 발생되면서 프로그램이 죽는다.
class A { public: A() { } void intermediate_call() { // Bad: virtual function call during object destruction virtual_function(); } virtual void virtual_function() = 0; virtual ~A() { intermediate_call(); } }; class B : public A { public: // override virtual function in A void virtual_function() { printf("B::virtual_function called\n"); } }; B myObject; // This call behaves like a normal virtual function call. // Print statement shows it invokes B::virtual_function. myObject.virtual_function();
'I ♥ Programming' 카테고리의 다른 글
Nuget 패키지 관리자 "사용 가능한 패키지 소스" 수동 추가 방법 (0) | 2020.03.16 |
---|---|
opencv cv::Mat 클래스 초기화 방법 및 사용 방법 (0) | 2018.05.09 |
[펌] 메모리릭 위치 알아내기. (발생 위치에 Breakpoint) (0) | 2016.12.27 |
JScript라는 Windows용 Script Host에서 메시지 박스 출력하기 (0) | 2016.04.08 |
Visual C++ 2013에서 리소스 ID 충돌 재배치 하는 프로그램 (이전 버전도 됨) (0) | 2015.07.18 |