【发布时间】:2012-10-24 14:51:09
【问题描述】:
我是否应该在构造函数声明中声明一个类的成员初始化列表:
class A
{
public:
A(int data) : theData(data);
};
或在构造函数定义中:
A::A(int data) : theData(data)
{
// code...
};
还是没关系?如果你以某种方式这样做,为什么?
【问题讨论】:
-
你交换了定义 声明。前者是声明,后者是定义。
-
-1 因为这对于(a)在你的书中查找,并且(b)在两分钟内自己尝试是微不足道的。我们希望在 Stack Overflow 进行一定程度的先前研究,您应该在将近两年后知道。
-
"Initialiser list" 通常表示其他东西(周围有
{}的东西)。说“成员初始化器 [list]”或“ctor-initialiser”。 -
@LightnessRacesInOrbit 刚学C++,非常感谢。我只是想知道在声明中是否有办法做到这一点。
-
@leemes:“member initiali[z]er”不是“错误的术语”——它是标准中使用的术语。相比之下,将它用于“初始化列表”(即使省略了“成员”)会产生零结果。
标签: c++ constructor initializer