01
다형적 사용이 있는가
- 호출 코드가 구체 타입 대신 기반 타입 포인터를 받는가?
- 컨테이너나 팩토리가 Base* 또는 unique_ptr<Base>를 반환하는가?
추상 클래스는 직접 객체를 만들 수 없어도 포인터나 참조로 자주 사용됩니다. 동적 할당 객체를 기반 포인터로 삭제한다면 소멸자 계약까지 인터페이스의 일부로 보아야 합니다.
class Shape {
public:
virtual double calculateArea() const = 0;
virtual ~Shape() = default;
};