-1

抱歉标题含糊。我正在做一个需要一些 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”。但是冒号“:”之后的那些东西是什么?

非常感谢您的任何意见。

4

2 回答 2

3

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

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

于 2012-09-22T16:27:30.807 回答
0

该函数是类的构造函数,构造函数必须做的一件事就是初始化类的每个成员。

单冒号后面的内容是用于初始化类成员的简短语法。所以当这个构造函数运行时 ph_ 将被设置为“~”。

于 2012-09-22T16:29:41.127 回答