传递std :: string参考时出错

时间:2011-11-16 05:11:44

标签: c++ stl

这可能很简单,我只是个白痴。

当我尝试编译(Linux,64bit,gcc)时:

namespace GUI {

class Manager
{
...
    private:
        bool AddElement(const std::string&, Element*);

        /// Friend functions
        friend void Element::AddToManager(const std::string&);
};

class Element
{
...
    private:
        void AddToManager(const std::string&);
        Manager* mGuiManager;
...
}

void Element::AddToManager(const std::string& rName)
{
    mGuiManager->AddElement(rName, this); // Error on this line
}

}

我收到错误:

undefined reference to `GUI::Manager::AddElement(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, GUI::Element*)'

我应该从哪里开始解决这个问题?

2 个答案:

答案 0 :(得分:0)

我被错误中的STL位分心,忘了我已经注释掉了实际的功能。

答案 1 :(得分:-1)

您需要将以下声明添加到Element类:

friend class Manager;