2011-08-18 11 views

Odpowiedz

24

Destruktor jest wirtualny, ponieważ wywodzi się z QWidget QObject który ma wirtualny destruktor. Dlaczego nie jest deklarowane jako wirtualne w kodzie, jest albo kwestią stylu, albo nieszkodliwym błędem. Sam oświadczyłbym, że to jest wirtualne.

+5

Właściwie w C++ metoda w podklasie jest wirtualna, jeśli jest zadeklarowana jako taka w klasie bazowej, więc w tym przypadku wirtualne słowo kluczowe nie jest konieczne dla QWidget. Podobnie jak John, dodałbym także wirtualne słowo kluczowe dla podklas. –

+2

@john, Byłem pod fałszywym wrażeniem, że 'virtual' nie powoduje pośredniego spadku łańcucha dziedziczenia. Okazuje się, że się myliłem. Dzięki za wskazanie tego! –