这可能很简单,我只是个白痴。
当我尝试编译(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*)'
我应该从哪里开始解决这个问题?
答案 0 :(得分:0)
我被错误中的STL位分心,忘了我已经注释掉了实际的功能。
答案 1 :(得分:-1)
您需要将以下声明添加到Element类:
friend class Manager;