构造函数C ++,构造函数后的冒号是什么意思?

时间:2014-05-08 17:13:20

标签: c++ constructor

略过一些代码,我注意到一些东西,老实说,我无法在构造函数中包围我 class Terrain { public: Terrain(int movementCost, bool isWater, Texture texture) : movementCost_(movementCost), isWater_(isWater), texture_(texture) {} ... //More code
这是什么样的巫术?那些foo_(foo)代表foo = foo_吗?

1 个答案:

答案 0 :(得分:2)

这是一个c ++初始化列表。 你几乎是对的,foo_(foo)相当于foo_ = foo;

当你有一个没有默认构造函数的成员变量时,这很有用。 如果没有此功能,则必须将其设为指针。

初始化也按照成员在类定义中声明的顺序执行,而不是它们出现的顺序(这应该与样式相同,但不一定)