C에서 순수 가상 소멸자가 필요한 이유는 무엇입니까?
C에서 객체를 처리할 때 객체를 적절하게 정리하려면 가상 소멸자가 필수적입니다. 상속과 다형성. 그런데 구체적으로 순수 가상 소멸자가 필요한 이유는 무엇인가요?
순수 가상 소멸자를 사용해야 하는 경우
순수 가상 소멸자는 주로 다음과 같은 경우에 사용됩니다. 클래스를 abstract로 선언하고 싶습니다. 이는 추상 클래스에서 파생된 클래스가 소멸자를 재정의해야 함을 의미합니다.
그러나 소멸자를 순수 가상으로 만든다고 해서 클래스가 자동으로 추상화되는 것은 아니라는 점은 주목할 가치가 있습니다. 멤버 함수 중 모든을 순수 가상으로 만들어 클래스를 추상화할 수 있습니다.
추상 클래스에서 소멸자를 순수 가상으로 만드는 것이 좋은 습관인가요?
아니요, 추상 클래스에서 소멸자를 순수 가상으로 만드는 것은 일반적으로 좋은 습관으로 간주되지 않습니다. 일반 가상 소멸자만으로도 클래스를 추상으로 선언할 수 있습니다.
클래스 작성자가 정의하지 않은 경우 컴파일러가 파생 클래스에 대한 암시적 소멸자를 자동으로 생성하기 때문입니다. 이 암시적 소멸자는 순수 가상이 아닙니다. 즉, 기본 클래스의 순수 가상 소멸자 때문에 파생 클래스가 추상화되지 않는다는 의미입니다.
추가 이점
클래스 추상화를 만드는 목적에 꼭 필요한 것은 아니지만 순수 가상 소멸자는 파생 클래스를 상기시키는 데 때때로 편리할 수 있습니다. 특정 정리 코드가 필요합니다. 그러나 이 접근 방식은 다소 인위적이고 강제되지 않은 것으로 간주됩니다.
결론
C에서 순수 가상 소멸자는 클래스를 추상으로 선언하는 데 필수적이지 않습니다. 멤버 함수는 이 목적을 달성할 수 있습니다. 주요 이점은 파생 클래스에 특정 정리 코드가 필요하다는 알림을 제공한다는 것입니다.
위 내용은 C 소멸자는 언제 순수 가상이어야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!