有人能解释一下这个c++;对我说什么? 我刚刚开始学习C++,这是我几个月来一直没有接触到的。我尝试过搜索这种语法,但没有成功。它来自programmr.com上的一个练习,涉及类和运算符重载。 代码如下: class temp { int value; public: temp(int v=0) : value(v) { }

有人能解释一下这个c++;对我说什么? 我刚刚开始学习C++,这是我几个月来一直没有接触到的。我尝试过搜索这种语法,但没有成功。它来自programmr.com上的一个练习,涉及类和运算符重载。 代码如下: class temp { int value; public: temp(int v=0) : value(v) { },c++,C++,我知道它声明了一个名为“temp”的类,其中包含一个私有成员变量“value”。我猜“public”下的代码是在声明默认构造函数。我习惯于看到函数语法中声明的默认构造函数: temp (int v=0){ value = v; some expressions; } 我感到困惑的部分是在冒号后面: : value(v) {} 结肠的功能到底是什么?默认构造函数和“value(v){}”之间的关系是什么?这只是我上面给出的一个例子中的函数样式默认构造函数的不同语法吗? 谢

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

temp (int v=0){
      value = v;
     some expressions;
}
我感到困惑的部分是在冒号后面:

: value(v) {}
结肠的功能到底是什么?默认构造函数和“value(v){}”之间的关系是什么?这只是我上面给出的一个例子中的函数样式默认构造函数的不同语法吗?
谢谢你帮我解决这个问题

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

: value(v)
这将简单地像

value = v;
这两种声明没有区别

如果您需要初始化多个变量,则可以这样尝试

:value1(v1), value2(v2), value3(v3)
这是非常常见的初始化模式


请注意,如果要初始化的数据成员标记为
const

,则必须使用此模式。另请参见对其的回答,称为初始化列表-它允许您在执行括号中的指令之前调用成员对象的构造函数。在C++原语中也有构造函数,它们只是用你在里面传递的任何值来启动变量。现在我知道了,我可以在第10章第1节看到。我还在读第九章第二节!非常感谢你!