有人可以向我解释这个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!
答
这是另一种初始化类成员变量的方法。
: value(v)
这只是工作像
value = v;
在这两个声明没有区别。
如果假设你需要初始化一个以上的变量,那么你可以尝试这样的..
:value1(v1), value2(v2), value3(v3)
这是很常见的初始化模式。
请注意,如果您正在初始化的数据成员标记为const
,那么您的已使用。
另请参阅http://*.com/questions/4589237/c-initialization-lists –
的答案它被称为初始化列表 - 它允许您在执行括号内的指令之前调用成员对象的构造函数。在C++原语中也有构造函数 - 它们只是用你传入的任何值启动变量。 –
感谢所有提供术语“初始化列表”。现在我知道了,我可以在第10章第1节看到。我仍然在第9章第2节中!非常感谢! – Huaidan