簡體   English   中英

使用這個成員 function 的正確語法是什么?

[英]What's the right grammar to use this member function?

我的目標是通過使用 function “getName()” 了解此“Planner”的名稱

Planner.cpp 中定義的 getName():

const std::string& ompl::base::Planner::getName() const
{
    return name_;
}

我稱這個 function 的方式:

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

我應該如何稱呼這個 function? 謝謝

這是一個非 static 方法,因此您必須使用 object 調用它。

例如,如果 planner_ 是指向 ompl::base::Planner class 實例的指針,那么您可以使用

planner_->getName();

或者

void ompl::geometric::SimpleSetup::clear()
{
    if (planner_ != nullptr) {
        std::cout << planner_->getName() << std::endl;
        planner_->clear();
    }
    if (pdef_ != nullptr) {
        pdef_->clearSolutionPaths();
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM