首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用这个成员函数的正确语法是什么?

使用这个成员函数的正确语法是什么?
EN

Stack Overflow用户
提问于 2022-04-05 02:27:05
回答 1查看 32关注 0票数 0

我的目标是通过使用函数"getName()“来知道这个”规划师“的名字。

getName()在Planner.cpp中定义:

代码语言:javascript
复制
const std::string& ompl::base::Planner::getName() const
{
    return name_;
}

我调用这个函数的方式:

代码语言:javascript
复制
void ompl::geometric::SimpleSetup::clear()
{
    std::cout << base::Planner::getName() << std::endl;
    if (planner_)
        planner_->clear();
    if (pdef_)
        pdef_->clearSolutionPaths();
}

我收到的错误消息:

代码语言:javascript
复制
/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

我该怎么称呼这个函数?谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-04-05 02:31:45

这是一个非静态方法,所以您必须用一个对象来调用它。

例如,如果planner_是指向ompl::base::Planner类实例的指针,则可以使用

代码语言:javascript
复制
planner_->getName();

代码语言:javascript
复制
void ompl::geometric::SimpleSetup::clear()
{
    if (planner_ != nullptr) {
        std::cout << planner_->getName() << std::endl;
        planner_->clear();
    }
    if (pdef_ != nullptr) {
        pdef_->clearSolutionPaths();
    }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71745708

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档