#include "rclcpp/rclcpp.hpp" //包含rclcpp头文件,使用rclcpp命名空间
class PersonNode : public rclcpp::Node // 继承rclcpp::Node类
{
private:
std::string name_; // 类内变量
int age_;
public:
PersonNode(const std::string &node_name, const std::string &name,const int & age) // 申明输入的参数,const限制变量为只读变量,避免意外修改
: Node(node_name) // 第一个参数赋值给父类
{
this->name_ = name; // 参数赋值给类内变量
this->age_ = age;
}
void eat(const std::string &food_name) // 定义eat方法
{
RCLCPP_INFO(this->get_logger(), "我是%s,%d岁,爱吃%s", this->name_.c_str(), this->age_, food_name.c_str());
}
};
int main(int argc, char * argv[])
{
rclcpp::init(argc, argv);
auto node = std::make_shared<PersonNode>("person_node","张三",25);
RCLCPP_INFO(node->get_logger(), "Hello, ROS2 from C++17!");
node -> eat("鱼香肉丝");
rclcpp::spin(node);
rclcpp::shutdown();
return 0;
}