【发布时间】:2012-06-28 13:52:31
【问题描述】:
我已经阅读了关于同样问题的其他线程,但我仍然不知道为什么会出现以下错误:undefinded reference to 并列出了外部类中的每个方法。
class ClientConnection
{
public:
class Connector
{
public:
Connector(ClientConnection&);
~Connector();
void Connect(unsigned int usleep);
void Stop();
bool isConnected();
private:
void attempt();
ClientConnection& m_client;
unsigned int m_usleep;
bool m_stopRequest;
bool m_isBusy;
boost::shared_ptr<boost::thread> m_thread;
};
Connector* Connector();
bool connect();
bool isConnected();
private:
friend class Connector;
};
我引用了外部类。 Connector 方法更新一个 Connector 对象并将其传递给它自己的引用。但是在代码中我得到undefined reference to ClientConnection::connect和undefined reference to ClientConnection::isConnected的任何地方。
我完全被卡住了。
另外 - 当我使用 Connector() 新建一个对象时,ClientConnection::Connector* connector = client.Connector(); 其中客户端是 ClientConnection 的实体对象,我得到 invalid use of non-static member function ‘ClientConnection::Connector* ClientConnection::Connector()’
【问题讨论】:
-
bool isConnected();在哪里实现? -
您应该发布 ClientConnection 的构造函数。
标签: c++ nested nested-class