在这段代码中冒号“:”的含义和用法是什么?

时间:2012-09-22 16:26:06

标签: c++ class

对于模糊的标题,我们深表歉意。我正在开展一个需要一些C ++知识的项目。我不会学习C ++,也不必花时间阅读一本书。所以我希望有人能够给我一个起点来查找它。

以下是代码:

TurtlebotTeleop::TurtlebotTeleop(): ph_("~"), linear_(1),angular_(0){
   ph_.param("axis_linear", linear_, linear_);
   ph_.param("axis_angular", angular_, angular_);
   ph_.param("axis_deadman", deadman_axis_, deadman_axis_);
   ph_.param("scale_angular", a_scale_, a_scale_);
   ph_.param("scale_linear", l_scale_, l_scale_);
}

我知道这段代码正在定义一种方法" TurtlebotTeleop"。但结肠后的那些东西":"?

非常感谢您的任何意见。

2 个答案:

答案 0 :(得分:3)

它是一个构造函数初始化列表。它是初始化类的数据成员的语法。

“代码块”是TurtlebotTeleop的默认构造函数的定义。 :{之间的内容是该类的某些数据成员的初始化。一旦进入构造函数的主体(在{}之间),所有数据成员都有一个值,无论你对它们做什么都是对现有实例的更改,而不是初始化

答案 1 :(得分:0)

该函数是您的类的构造函数,构造函数必须执行的操作之一是初始化类的每个成员。

单冒号之后的东西是初始化类成员的简短语法。因此,ph_将被设置为"〜"当这个构造函数运行时。