我的目标是通过使用函数"getName()“来知道这个”规划师“的名字。
getName()在Planner.cpp中定义:
const std::string& ompl::base::Planner::getName() const
{
return name_;
}我调用这个函数的方式:
void ompl::geometric::SimpleSetup::clear()
{
std::cout << base::Planner::getName() << std::endl;
if (planner_)
planner_->clear();
if (pdef_)
pdef_->clearSolutionPaths();
}我收到的错误消息:
/home/ubuntuvb/ws_mvit/src/ompl/src/ompl/geometric/src/SimpleSetup.cpp: In member function ‘virtual void ompl::geometric::SimpleSetup::clear()’:
/home/ubuntuvb/ws_mvit/src/ompl/src/ompl/geometric/src/SimpleSetup.cpp:87:41: error: cannot call member function ‘const string& ompl::base::Planner::getName() const’ without object
std::cout << base::Planner::getName() << std::endl;
^
make[2]: *** [src/ompl/CMakeFiles/ompl.dir/geometric/src/SimpleSetup.cpp.o] Error 1
make[1]: *** [src/ompl/CMakeFiles/ompl.dir/all] Error 2
make: *** [all] Error 2我该怎么称呼这个函数?谢谢
发布于 2022-04-05 02:31:45
这是一个非静态方法,所以您必须用一个对象来调用它。
例如,如果planner_是指向ompl::base::Planner类实例的指针,则可以使用
planner_->getName();或
void ompl::geometric::SimpleSetup::clear()
{
if (planner_ != nullptr) {
std::cout << planner_->getName() << std::endl;
planner_->clear();
}
if (pdef_ != nullptr) {
pdef_->clearSolutionPaths();
}
}https://stackoverflow.com/questions/71745708
复制相似问题