C & C++/C++
[C++] virtual 가상함수 (소멸자)
키플레이어
2019. 11. 6. 10:35
반응형
- 소멸자 virtual을 쓰는 이유는?
상속하고 있는 클래스를 타입이 다른 포인터로 소멸할때 virtual이 없으면 오버라이딩 현상이 적용되지 않아
메모리 해제에 있어 메모리 누수(leak) 발생
class classA{
public:
classA();
virtual ~classA();
};
- 호출순서로 확인할 수 있는 이유
생성자 호출 순서 ( 1.부모 → 2.자식 )
소멸자 호출 순서 ( 1.자식 → 2.부모 )
부모클래스로 소멸자를 호출하였을때 자식클래스의 소멸자가 호출되지 않는 사태를 막기 위해 사용
클래스 상속 , 동적할당시 반드시 사용 할 것을 권장
생성자 참고
https://coding-house.tistory.com/28
[C++] virtual 가상함수 (생성자)
가상함수: 기본 클래스의 멤버함수를 정의할때 그 함수가 가상함수라면, 파생클래스가 상속받았을때 재정의되는 함수 일반 상속관계 class class AAA{ public: void Print() { cout << "AAA Print함수 콜" << end..
coding-house.tistory.com
반응형