> 백엔드 개발 > C++ > C 추상 클래스에서 순수 가상 소멸자를 사용하는 이유는 무엇입니까?

C 추상 클래스에서 순수 가상 소멸자를 사용하는 이유는 무엇입니까?

DDD
풀어 주다: 2024-12-14 19:33:12
원래의
634명이 탐색했습니다.

Why Use Pure Virtual Destructors in C   Abstract Classes?

C의 순수 가상 소멸자와 추상 클래스

가상 소멸자는 C에서 다형성 관계를 처리할 때 메모리를 관리하는 데 중요한 역할을 합니다. 그러나 순수 가상 소멸자의 목적은 특히 추상 클래스와 관련하여 의문을 제기합니다.

1. 소멸자는 언제 순수 가상으로 만들어지나요?

순수 가상 소멸자는 기본 클래스에 구현이 없으므로 해당 클래스의 개체를 인스턴스화할 수 없습니다. 일반적으로 모든 파생 클래스가 자체 소멸자 구현을 제공하도록 강제하려는 경우에 사용됩니다.

그러나 순수 가상 소멸자를 사용할 실질적인 이유는 없습니다. 작성자가 제공하지 않는 경우 컴파일러는 파생 클래스에 대한 암시적 소멸자를 생성하여 기본 클래스의 순수 가상 소멸자를 파생 클래스와 관련이 없게 만듭니다.

2. 추상 클래스 및 소멸자를 위한 모범 사례

추상 클래스에서 소멸자를 순수 가상으로 만드는 것은 좋은 사례로 간주되지 않습니다. 가상이지만 순수하지 않은 소멸자만으로도 클래스를 추상으로 표시할 수 있습니다.

그러나 추상 클래스에서 순수 가상 소멸자를 사용하는 데는 이유가 있을 수 있습니다. 특정 정리 코드를 구현합니다. 그러나 이 접근 방식은 널리 채택되지 않습니다.

참고: 소멸자가 순수 가상이더라도 파생 클래스의 인스턴스화를 허용하려면 기본 클래스에 구현이 필요합니다.

요약하자면 C에서는 순수 가상 소멸자가 허용되지만 실제로는 필요하지 않습니다. 추상 클래스로 작업할 때 순수하지 않은 가상 소멸자만으로도 파생 클래스에 자체 소멸자 구현이 있는지 확인하는 데 충분합니다.

위 내용은 C 추상 클래스에서 순수 가상 소멸자를 사용하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿