读书人

实现singleton时出错了高手来看看…

发布时间: 2012-02-21 16:26:23 作者: rapoo

实现singleton时出错了,高手来看看……
想做个孤子类:
class ClientTable
{
public :
static ClientTable *ClientTable::getClientTable()
{
if(ClientTable::sm_pClientTable == NULL)
{
ClientTable::sm_pClientTable = new ClientTable;
}
return ClientTable::sm_pClientTable;
}
int getTableLength();
int addFromBuff(void *clientInfoBuff, int clientInfoCount);
int addClient(CLIENTINFO newClientInfo);
void cleanTable();
void showTable();
~ClientTable();

private :
ClientTable();
static ClientTable *sm_pClientTable;
PCLIENTTABLENODE clientLink;
};

执行下面代码
ClientTable *myTable = NULL;
myTable = ClientTable::getClientTable();
后报错:
error LNK2001: unresolved external symbol "private: __thiscall ClientTable::ClientTable(void) " (??0ClientTable@@AAE@XZ)

error LNK2001: unresolved external symbol "private: static class ClientTable * ClientTable::sm_pClientTable " (?sm_pClientTable@ClientTable@@0PAV1@A)

大家看看什么原因

[解决办法]
构造函数以及static成员变量pClientTable有声明无定义

读书人网 >C++

热点推荐