有人可以向我解释这个c ++代码吗?

时间:2014-01-20 06:09:14

标签: c++

在过去的几个月里,我刚刚开始学习c ++,而且我还没有接触过这么多。我试过搜索这种语法,但没有成功。这是来自programmr.com上的练习,它涉及类和运算符重载。 这是代码:

class temp
{
  int value;

public:
  temp(int v=0) : value(v) { }

我理解它声明了一个名为“temp”的类,其私有成员变量为“value”。我猜测“public”下的代码声明了一个默认构造函数。我习惯于看到在函数语法中声明的默认构造函数:

temp (int v=0){
      value = v;
     some expressions;
}

我很困惑的部分是在结肠之后:

: value(v) {}

那里的结肠有什么功能呢?默认构造函数与“value(v){}”之间的关系是什么?这只是函数式默认构造函数的不同语法我给出了上面的例子吗? 感谢您帮助这总n00b!

1 个答案:

答案 0 :(得分:1)

这是初始化类成员变量的另一种方法。

: value(v)

这就像

一样
value = v;

这两个声明之间没有区别。

如果假设您需要初始化多个变量,那么您可以尝试这样做..

:value1(v1), value2(v2), value3(v3)

这是非常常见的初始化模式。

请注意,如果您初始化的数据成员标记为const,则 使用此模式。