可能重复:
What does a colon following a C++ constructor name do?
我在网上找到了下面的例子但是构造函数的语法让我有点困惑,特别是:符号。有人可以给我一个简短的解释吗?感谢。
struct TestStruct {
int id;
TestStruct() : id(42)
{
}
};
答案 0 :(得分:27)
构造函数在调用时会将id
初始化为42
。它被称为初始化列表。
在您的示例中,它等同于
struct TestStruct {
int id;
TestStruct()
{
id = 42;
}
};
您也可以使用多个成员
struct TestStruct {
int id;
double number;
TestStruct() : id(42), number(4.1)
{
}
};
当构造函数的唯一目的是初始化成员变量
时,它很有用struct TestStruct {
int id;
double number;
TestStruct(int anInt, double aDouble) : id(anInt), number(aDouble) { }
};
答案 1 :(得分:1)
这是一个构造函数初始化列表。您可以在此处了解更多信息:
http://www.learncpp.com/cpp-tutorial/101-constructor-initialization-lists/