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,我有一種錯誤的印象,認爲'虛擬'不會隱式地隱藏繼承鏈。原來我錯了。感謝您指出了這一點! –