Dlaczego potrzebujemy czystego wirtualnego destruktora w C ++?

Rozumiem potrzebę wirtualnego destruktora. Ale dlaczego potrzebujemy czystego wirtualnego destruktora? W jednym z artykułów C ++ autor wspomniał, że używamy czystego destruktora wirtualnego, gdy chcemy zrobić abstrakcję klasową.

Ale możemy zrobić abstrakcję klasową, czyniąc dowolną z funkcji członka czystą wirtualną.

Więc moje pytania są

Kiedy naprawdę robimy destruktora czystego wirtualnego? Czy ktoś może podać dobry przykład w czasie rzeczywistym?

Czy podczas tworzenia klas abstrakcyjnych dobrą praktyką jest czynienie destruktora również wirtualnym? Jeśli tak, to dlaczego?

questionAnswers(12)

yourAnswerToTheQuestion