这是什么语法?

时间:2010-11-09 16:23:43

标签: c++ constructor ctor-initializer

  

可能重复:
  What does a colon following a C++ constructor name do?

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

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

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

3 个答案:

答案 0 :(得分:5)

这是member initialization list

ui(new Ui::TagDetails)表示使用指向新分配的ui类型对象的指针初始化成员变量Ui::TagDetails

答案 1 :(得分:1)

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

答案 2 :(得分:0)

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

我对该网站并不熟悉,但this page似乎非常彻底地解释了网站的运作方式。