2012-12-30 119 views
2

這是Qt mainwindow.cpp中自動生成的函數代碼。瞭解成員初始化列表

MainWindow::MainWindow(QWidget *parent) : 
    QMainWindow(parent), 
    ui(new Ui::MainWindow) 
{ 

} 

這會是一回事嗎?

MainWindow::MainWindow(QWidget *parent) 
{ 
    QMainWindow = parent; 
    ui = new Ui::MainWindow; 
} 
+1

不,他們不一樣;不遠。雖然他們是相似的。 – 0x499602D2

+2

你的第二個版本是否編譯? – suszterpatt

+0

我的猜測不是。 (這是編譯問題)。 –

回答

5

號,我相信QMainWindow是一個基類,所以QMainWindow=parent不能替代的。至於ui分配。在第一種情況下,它將被初始化爲new Ui::MainWindow,而在第二個片段中它將在初始化之後被分配。在複雜對象的情況下,它可能會導致顯着的性能損失,並且也可能無法在構造之後正確初始化對象。

+0

謝謝我想我還有更多的學習要做 – chuckieDub

+0

不客氣。學習很有趣;-) –