Note::Note(Traymenu *trayMenuIn, QWidget *parent) :
ui(new Ui::Note){
ui->setupUi(this);
Note::Note(Traymenu *trayMenuIn, QWidget *parent){
ui = new Ui::Note;
ui->setupUi(this);
这两种类型都在起作用。上面的代码是QtCreator建议的,下面的代码是如果我必须自己编写它会做的事情。
Note的私人成员是
Ui::Note *ui;
只有第一种形式是初始化。第二种形式使用未定义的值初始化ui
,然后为其赋值。
您应该首选第一种形式(初始化)。请参阅相关的C++常见问题解答条目。
虽然差异很小,但我更喜欢QtCreator建议的代码片段:它使用初始化语法而不是逻辑上表示初始化的代码的赋值语法。
由于正在初始化的成员是一个指针,因此即使关闭优化也不会降低性能。但是,最好养成尽可能多地使用初始化列表进行初始化的习惯,因为这可以防止构造函数本身内部的潜在编码问题。