没有调用回调函数

我正在尝试在C ++中实现ROS GotoGoal,这是代码

#include "ros/ros.h"
#include "geometry_msgs/Twist.h"
#include "geometry_msgs/Pose2D.h"
#include "turtlesim/Pose.h"

class Turtle {

public :
  Turtle(int argc,char** argv){
    ros::init(argc,argv,"mover");
    ros::NodeHandle n;
    pose = turtlesim::Pose();
    pub = n.advertise<geometry_msgs::Twist>("/turtle1/cmd_vel", 100);
    sub = n.subscribe("/turtle1/pose", 100, &Turtle::Update, this);
  }

  void Update(const turtlesim::Pose::ConstPtr& msg){
    ROS_INFO("Pose recieved : x = %f y = %f\n", msg->x, msg->y );
    pose = *msg;
  }

  // [..some omitted code..]

  ros::Publisher pub;
  ros::Subscriber sub;
  turtlesim::Pose pose;
  int ch = 0;
};

但是没有调用Update回调函数,并且由于未更新姿势,乌龟正在绕圈移动。我尝试使用ROS_INFO调试问题,但没有任何效果。 我在这里做错了什么? 注意:由于stackoverflow的政策,一些功能的实现已从代码段中删除。