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?