[C++] 다형성과 가상 소멸자
CPP2025. 3. 25. 14:59[C++] 다형성과 가상 소멸자

C++은 객체 지향 프로그래밍 언어이다.OOP의 속성으로는 은닉화, 캡슐화, 상속성, 다형성이 있고 OOP의 특성으로는 추상화가 있다.이중에서도 다형성은 쉽게 말하면 '모습은 같은데 형태는 다른 것'을 의미한다.상속관계에서 다형성이 활용되는데 주의해야할 것들 중 이번 글은 '가상 소멸자'에 대한 부분이다. parent* p = new child();우리는 위처럼 '업캐스팅'을 자주 사용할 때가 많다. 위 코드를 컴퓨터 입장에서 보면 부모 클래스 포인터로 무엇인가 가르키고 있기 때문에 가르키는 대상이 무조건 부모 클래스 객체라고 생각할 수 밖에 없다.(원하는 동작은 parent*로 가르키고 있지만 실 객체는 child라고 인식 시키고 싶은 것이다) 위 코드는 child클래스가 parent클래스로 부터 함수..

[C++] vftable
CPP2023. 4. 21. 18:14[C++] vftable

이번글은 C++의 다형성의 가상함수에 대한 글입니다. C++ 다형성에 대해서 전부는 다룰 수 없고 제가 이해한 내용중에서도 "정적 바인딩", "동적 바인딩", "가상 함수", "vftable", "순수 가상함수", "추상 클래스" 정도에 대해서만 다룰려고 합니다. 먼저 아래의 코드에서 class A { public: void Func() { cout

image