在过去的几个月里,我刚刚开始学习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!
答案 0 :(得分:1)
这是初始化类成员变量的另一种方法。
: value(v)
这就像
一样value = v;
这两个声明之间没有区别。
如果假设您需要初始化多个变量,那么您可以尝试这样做..
:value1(v1), value2(v2), value3(v3)
这是非常常见的初始化模式。
请注意,如果您初始化的数据成员标记为const
,则 使用此模式。