鱼C论坛

 找回密码
 立即注册
查看: 968|回复: 1

[已解决]关于C++类的继承与重写

[复制链接]
发表于 2020-10-16 14:59:15 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
像下面MoveGroupInterface继承了MoveGroupInterfaceImpl,但是public中对MoveGroupInterfaceImpl的操作是什么意思?我理解的重写不是应该是方法吗,整个类也可以这样操作吗?

class MoveGroupInterface::MoveGroupInterfaceImpl
{
public:
  MoveGroupInterfaceImpl(const Options& opt, const std::shared_ptr<tf2_ros::Buffer>& tf_buffer,
                         const ros::WallDuration& wait_for_servers)
    : opt_(opt), node_handle_(opt.node_handle_), tf_buffer_(tf_buffer)
  {
   

    joint_model_group_ = getRobotModel()->getJointModelGroup(opt.group_name_);

    joint_state_target_.reset(new moveit::core::RobotState(getRobotModel()));
    joint_state_target_->setToDefaultValues();
    active_target_ = JOINT;
    can_look_ = false;
    can_replan_ = false;
    replan_delay_ = 2.0;
    goal_joint_tolerance_ = 1e-4;
    goal_position_tolerance_ = 1e-4;     // 0.1 mm
    goal_orientation_tolerance_ = 1e-3;  // ~0.1 deg
    allowed_planning_time_ = 5.0;
    num_planning_attempts_ = 1;
    node_handle_.param<double>("robot_description_planning/joint_limits/default_velocity_scaling_factor",
                               max_velocity_scaling_factor_, 0.1);
    node_handle_.param<double>("robot_description_planning/joint_limits/default_acceleration_scaling_factor",
                               max_acceleration_scaling_factor_, 0.1);
    initializing_constraints_ = false;

    if (joint_model_group_->isChain())
      end_effector_link_ = joint_model_group_->getLinkModelNames().back();
    pose_reference_frame_ = getRobotModel()->getModelFrame();

    trajectory_event_publisher_ = node_handle_.advertise<std_msgs::String>(
        trajectory_execution_manager::TrajectoryExecutionManager::EXECUTION_EVENT_TOPIC, 1, false);
    attached_object_publisher_ = node_handle_.advertise<moveit_msgs::AttachedCollisionObject>(
        planning_scene_monitor::PlanningSceneMonitor::DEFAULT_ATTACHED_COLLISION_OBJECT_TOPIC, 1, false);

    current_state_monitor_ = getSharedStateMonitor(robot_model_, tf_buffer_, node_handle_);

    ROS_INFO_STREAM_NAMED(LOGNAME, "Ready to take commands for planning group " << opt.group_name_ << ".");
  }
最佳答案
2020-10-16 15:16:04
单冒号表示继承
class b
{
}
class a : public b
{
}

双冒号表示作用域,表示 class b 是 class a 的内部类
class a
{
public:
        a(){}
        ~a(){}
public:
        class b;
private:
        int m_a;
};

class a::b
{
public:
        b(){};
        ~b(){};
private:
        
};
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-10-16 15:16:04 | 显示全部楼层    本楼为最佳答案   
单冒号表示继承
class b
{
}
class a : public b
{
}

双冒号表示作用域,表示 class b 是 class a 的内部类
class a
{
public:
        a(){}
        ~a(){}
public:
        class b;
private:
        int m_a;
};

class a::b
{
public:
        b(){};
        ~b(){};
private:
        
};
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-12 22:02

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表