2

可能重复:
C++ 构造函数名称后面的冒号有什么作用?

我发现这种语法在 C++ 中很奇怪

TagDetails::TagDetails(QWidget *parent) :
QDialog(parent),
ui(new Ui::TagDetails)

这是C++中构造函数的声明...冒号后面的东西代表什么,即ui(new Ui::TagDetails)在这里是什么意思?冒号是干什么用的?

4

3 回答 3

5

它是一个成员初始化列表

ui(new Ui::TagDetails)意味着成员变量ui使用指向新分配的类型对象的指针进行初始化Ui::TagDetails

于 2010-11-09T16:26:16.097 回答
1

您正在查看的是一个初始化列表。类的ui成员正在使用 的值进行初始化new Ui::TagDetails,其中TagDetails在类或命名空间中定义Ui

于 2010-11-09T16:26:56.647 回答
0

这称为初始化列表。有关初始化列表优于赋值的优点,请参阅C++ FAQ

我不熟悉这个网站,但这个页面似乎非常彻底地解释了事情是如何运作的。

于 2010-11-09T16:27:45.670 回答