16
A
回答
24
声明的析构函数是虚拟的,因为QWidget的自QObject里面确实有一个派生虚拟析构函数。为什么它在代码中没有被声明为虚拟是一种风格问题还是一种无害的错误。我会自己宣布它是虚拟的。
相关问题
- 1. 为什么`boost :: multi_array_ref`的析构函数是非虚拟的?
- 2. 没有虚拟构造函数但是虚拟析构函数
- 3. 虚拟析构函数的用法是什么?
- 4. 为什么std :: vector :: push_back具有虚拟析构函数的segfaults?
- 5. 为什么析构函数在默认情况下不是虚拟的[C++]
- 6. 称为即使基类的析构为什么派生类析构函数不是虚拟
- 7. C++虚拟析构函数
- 8. CRT虚拟析构函数
- 9. 虚拟析构函数?
- 10. C++虚拟析构函数
- 11. 为什么在继承使用虚拟析构函数
- 12. 为什么STL容器没有虚拟析构函数?
- 13. 为什么有可能使析构函数纯虚拟
- 14. 没有虚拟方法的虚拟析构函数有什么危害吗?
- 15. 虚拟析构函数:不工作?
- 16. 为什么我们有一个虚析构函数,而不是在C虚拟构造++?
- 17. 升压“析构函数不是虚拟的”错误在MSVC 11
- 18. 如果从析构函数调用纯虚函数是UB,为什么我们可以使用纯虚拟desrtuctors?
- 19. 为什么纯虚析构函数总是等同于零
- 20. 为什么C++中的虚函数称为“虚拟”?
- 21. 虚拟析构函数 - 有需要时
- 22. 虚拟析构函数如何工作?
- 23. 虚拟析构函数分段错误
- 24. 什么时候以及为什么要将基类中的析构函数定义为虚拟的?
- 25. 为什么不调用析构函数?
- 26. C# - 为什么虚拟函数不能覆盖抽象函数?
- 27. 不能声明一个QWidget,因为虚函数是纯的
- 28. 当A类的析构函数是虚拟的还是非虚拟的时,为什么B的calss成员n有不同的值?
- 29. 为什么在析构函数中虚拟表设置回该级别?
- 30. 不含虚拟析构函数的多态的C++ shared_ptr
实际上,在C++中,如果子类中的方法在基类中被声明为虚方法,则该方法是虚拟的,因此在这种情况下,QWidget不需要virtual关键字。和约翰一样,我也会为子类添加虚拟关键字。 –
@john,我有一种错误的印象,认为'虚拟'不会隐式地隐藏继承链。原来我错了。感谢您指出了这一点! –