面向对象编程
前言
面向对象编程时c++等语言的重要特性,之前的文章虽然简单实现了订阅方,但时面向过程编程,本文针对面向对象的编程,编写一个订阅激光扫描话题的节点
要点
与面向过程不同的是,面向对象需要定义很多类,通过实例(对象)的实现来编程
代码
节点代码
这段代码实例化一个控制器的对象
#include <ros/ros.h>
#include <package/Class.hpp>
int main(int argc, char ** argv)
{
ros::init(argc, argv, "node_name");
ros::NodeHandle nodeHandle("~");
node_name::Controller controller(nodeHandle);
ros::spin();
return 0;
}
本文中使用的是private的节点句柄,因为这么使用使得本句柄下所有的函数定义都在句柄为名的名称空间下,这样封装性做得更好,而且在大型项目中也避免了重名的风险。
Controller头文件
定义了Controller类。