2011-11-16 43 views
0

這可能很簡單,我只是一個白癡。錯誤來自傳遞std :: string參考

當我嘗試編譯(Linux操作系統,64位,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

您是否在** GUI **命名空間中定義了AddElement –

+0

我所做的一切都在GUI命名空間中。我把這個問題放在了帖子的後面,有一個與它有關的怪癖。 – Nate

+0

小心添加'AddElement'的定義? –

回答

-1

您需要將以下聲明添加到您的Element類:

friend class Manager; 
0

我被STL中的位錯誤分心,忘了我有註釋掉的實際功能。