16
En cuanto a qwidget.h, me encontré con el destructor de la siguiente manera:¿Por qué el destructor de QWidget no es virtual?
~QWidget();
Me preguntaba por qué esto no se declara como virtual
En cuanto a qwidget.h, me encontré con el destructor de la siguiente manera:¿Por qué el destructor de QWidget no es virtual?
~QWidget();
Me preguntaba por qué esto no se declara como virtual
El destructor es virtual, porque se deriva de QWidget QObject el cual tiene una destructor virtual. Por qué no se declara virtual en el código es un problema de estilo o un error inofensivo. Lo habría declarado virtual yo mismo.
En realidad, en C++ un método en una subclase es virtual si es declarado como tal en la clase base, por lo que en este caso la palabra clave virtual no es necesario para QWidget. Al igual que John, también habría agregado la palabra clave virtual para las subclases. –
@ John, que estaba bajo una falsa impresión de que 'virtual' no gotea abajo de la cadena de herencia de manera implícita. Resulta que estaba equivocado. Gracias por señalar eso! –