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

问题描述:

这几个月我刚开始学习C++,还有很多我没有接触过。我试过寻找这个语法,但没有成功。它来自programmr.com上关于类和运算符重载的练习。 下面的代码:有人可以向我解释这个C++代码吗?

class temp 
{ 
    int value; 

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

我理解它宣告了一个名为“TEMP”类,它有一个私有成员变量“值”。我猜“公共”下的代码是声明一个默认的构造函数。我已经习惯了看到在函数语法声明的缺省构造函数:

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

我感到困惑的是冒号后的部分:

: value(v) {} 

什么是结肠存在的功能,到底是什么?默认构造函数和“value(v){}”之间的关系是什么?这只是一个不同的函数式默认构造函数的语法,我给了上面的例子吗? 感谢您帮助完成n00b!

+0

另请参阅http://*.com/questions/4589237/c-initialization-lists –

+0

的答案它被称为初始化列表 - 它允许您在执行括号内的指令之前调用成员对象的构造函数。在C++原语中也有构造函数 - 它们只是用你传入的任何值启动变量。 –

+0

感谢所有提供术语“初始化列表”。现在我知道了,我可以在第10章第1节看到。我仍然在第9章第2节中!非常感谢! – Huaidan

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

: value(v) 

这只是工作像

value = v; 

在这两个声明没有区别。

如果假设你需要初始化一个以上的变量,那么你可以尝试这样的..

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

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

请注意,如果您正在初始化的数据成员标记为const,那么您的已使用