可能重复:
构造函数中这个奇怪的冒号成员语法是什么?
C++ 初始化
我刚刚收到一个 C++ 程序中的头文件,我无法弄清楚这行代码的作用:
Card(Value faceValue=deuce, Suit suit = clubs):
suit(suit), faceValue(faceValue) {}
这是什么:
意思,为什么用;
(我认为我应该)替换它会破坏代码?
抱歉这个问题的笼统性,但有人可以解释这两行的目的吗?
感谢您的时间。
可能重复:
构造函数中这个奇怪的冒号成员语法是什么?
C++ 初始化
我刚刚收到一个 C++ 程序中的头文件,我无法弄清楚这行代码的作用:
Card(Value faceValue=deuce, Suit suit = clubs):
suit(suit), faceValue(faceValue) {}
这是什么:
意思,为什么用;
(我认为我应该)替换它会破坏代码?
抱歉这个问题的笼统性,但有人可以解释这两行的目的吗?
感谢您的时间。
这看起来像类的构造函数Card
。之后的部分:
是初始化列表,初始化成员变量(或父类,但我认为这不适用于这种情况)的值。构造函数的主体是空的,因为它需要做的所有事情都在初始化列表中完成。
: 后面是初始化列表。使用它而不是在构造函数主体中分配成员变量的原因是,如果您在构造函数主体中执行此操作,则会首先调用默认构造函数,然后再调用复制构造函数或赋值运算符。通过使用初始化列表,您可以跳过第一步。
初始化列表。这是在 C++ 中初始化类构造函数的首选方式。
使用它是因为它允许初始化const
类的成员而不会出现编译错误。