结构构造函数语法

时间:2012-02-05 00:14:38

标签: c++ struct

  

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

我在网上找到了下面的例子但是构造函数的语法让我有点困惑,特别是:符号。有人可以给我一个简短的解释吗?感谢。

struct TestStruct {
    int id;
    TestStruct() : id(42)
    {
    }
};

2 个答案:

答案 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/