8
我在ROS應用程序中使用以下代碼。構造函數引用參數導致seg錯誤
class RobotisController
{
private:
....
public:
ros::NodeHandle pxxx;
}
RobotisController::RobotisController(ros::NodeHandle& nh) : pxxx(nh)
{
packetHandlerList.push_back(PacketHandler::getPacketHandler(1.0));
packetHandlerList.push_back(PacketHandler::getPacketHandler(2.0));
}
class RosWrapper {
protected:
Robotis::RobotisController controller_;
ros::NodeHandle nh_;
....
public:
RosWrapper() :
controller_(nh_) {}
}
main()
{
RosWrapper interface;
}
當我運行上面的代碼時,它會導致SIGSEGV。我試圖調試代碼,當我到達RobotisController的構造函數時,我發現傳遞給構造函數nh
的變量顯示爲cannot access memory
,但內存已分配到類RosWrapper中。
哇..這是我的一個愚蠢的錯誤..謝謝.. – Lonewolf
:
你可能會改變聲明的順序。 :) – songyuanyao