语法“Foo(int v):val_(v){}”?

时间:2011-05-02 18:21:23

标签: c++ syntax

我正在阅读一些代码,而且我很难理解语法:

  struct Foo {

  int val_;

  Foo(int v) : val_(v) {}  //--->THIS LINE

  };

冒号:似乎是成员访问运算符。

我能否清楚解释上述一行?

2 个答案:

答案 0 :(得分:3)

初始化val_v

请参阅:Constructor Initialization Lists

答案 1 :(得分:1)

C ++中的结构可以像类一样拥有构造函数。这是将公共变量val_初始化为v,就像在构造函数体中有val_ = v;一样。请参阅this thread,了解它们在效率方面的优势。