다형성 클래스 가상 소멸자를 사용하지 않는 Shared_Ptr 구현
shared_ptr 구현을 위한 가상 소멸자의 필요성에 관해 Armen Tsirunyan과 Daniel Lidström 사이의 논쟁에서, 그러한 것을 요구하지 않는 shared_ptr을 디자인하는 것은 실제로 가능합니다
기술적 구현
이 구현의 핵심은 유형 삭제에 있습니다. Shared_ptr은 참조 카운터뿐만 아니라 동일한 메모리 블록에 저장된 삭제자 개체도 관리합니다. 이 삭제자의 유형은 shared_ptr의 유형과 구별되므로 다양한 동적 유형을 사용하여 객체를 유연하게 관리할 수 있습니다.
템플릿 생성자가 도입되었습니다.
template<class T> class shared_ptr { public: ... template<class Y> explicit shared_ptr(Y* p); ... };
파생 클래스의 포인터(예: shared_ptr
C 11 표준 요구 사항
C 11 표준은 이 생성자에 대한 요구 사항을 명시적으로 정의합니다.
소멸자:
따라서 shared_ptr 구현은 유형 삭제를 활용하고 삭제자를 주의 깊게 관리하여 객체를 효과적으로 폐기합니다. 다형성 클래스에 가상 소멸자가 필요하지 않은 경우에도 다양한 동적 유형을 사용할 수 있습니다.
위 내용은 다형성 클래스 가상 소멸자 없이 shared_ptr이 작동할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!