我知道这个问题已经被问过很多次了,但我仍然卡住了。我以为我明白这个错误是什么了,但显然我不明白。所以,我得到的错误是一个非静态成员引用 m...
我知道这个问题已经被问过很多次了,但我仍然卡住了。我以为我明白这个错误是什么了,但显然我不明白。
所以我得到的错误是
a nonstatic member reference must be relative to a specific object
我的代码是:
class theTranslator {
public:
ros::NodeHandle nh;
ros::Publisher pub = nh.advertise<sensor_msgs::Image>("camera/depth/image_raw", 100);
static void getMessage(const sensor_msgs::Image::ConstPtr& recMmsg) {
ROS_INFO( "I heard message" );
pub.publish(recMmsg); //*** ERROR IS HERE ***
}
};
由于 是 pub
与 属于同一类的一部分 getMessage()
,因此它不应该起作用吗?如何让 static
成员函数使用同一类的变量成员?
PS 这是在 ROS (机器人操作系统)中完成的,但我相信这是一个 C++ 错误(与 ROS 无关)。