Ошибка при передаче ссылки на std :: string - PullRequest
0 голосов
/ 16 ноября 2011

Это, наверное, очень просто, и я просто идиот.

Когда я пытаюсь скомпилировать (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 голосов
/ 17 ноября 2011

Я отвлекся на биты STL в ошибке и забыл, что закомментировал фактическую функцию.

0 голосов
/ 16 ноября 2011

Вам необходимо добавить следующую декларацию в ваш класс Element:

friend class Manager;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...