DeadReckoning::DeadReckoning() :
_T_w_0_current(Transform()),
_T_w_6_current(Transform()),
_T_w_0_last(Transform()),
_T_w_6_last(Transform()),
_encoder_data(EncoderDataType()),
_kinematics(new ClimberKinematics5D),
_is_encoder_data_updated(true) {}
- 但我需要传入一些别的参数来帮忙初始化,于是定义了另一个有参的构造函数;这里面为了偷懒,直接调用了上面的无参构造函数:
DeadReckoning::DeadReckoning(const DeadReckoning::Transform &T, GrasperName which_end) {
DeadReckoning();
//设置夹紧端,并根据夹紧端设置初始姿态
if (which_end == G0) {
_grasper_status = JustG0;
_T_w_6_current = T;
} else if (which_end == G6) {
_grasper_status = JustG6;
_T_w_0_current = T;
}
}
- 现象:断点调试到无参构造函数里,发现_kinematics被正确赋予了一个指针值;但断点到有参构造函数里的DeadReckoning()时,发现_kinematics又变成了NULL??
- 这是为什么?