这段c ++代码发生了什么? (继承的解析运算符?!?)

时间:2012-01-18 18:39:36

标签: c++ class inheritance scope

我不知道这段代码发生了什么。这是我必须理解的一段代码。

orange::orange():
  hello_short(false),
  hello_long(false),
  foo(NULL),
  foo2(NULL),
  quiet(false)
{
  res  = NULL;
  good = true;
}

2 个答案:

答案 0 :(得分:5)

orange::orange():

simpleies表示你正在定义类orange(左侧部分)的函数,该函数被称为“orange”(右侧部分)并且不带参数。由于函数的名称与类相同并且不返回任何值,因此它是类的结构函数

其余的是初始化列表:http://www.cprogramming.com/tutorial/initialization-lists-c++.html

答案 1 :(得分:1)

使用给定值初始化班级成员(hello_short将为falsehello_long将为falsefoo将为NULL }等,将res设置为NULL并将good设置为true

初始化列表总是在执行构造函数之前完成(即大括号内的代码)。

此外,还存在语法错误:在foo2(NULL)之后,应该出现逗号。