一个vc编译的问题,求教!
我写了一个c++类,用vc编译没有问题,但是连接的时候报如下的错误:
bcpcdr.obj : error LNK2005: "public: __thiscall COnlineName::COnlineName(char const *)" (??0COnlineName@@QAE@PBD@Z) already defined in absonline.obj
bcpcdr.obj : error LNK2005: "public: __thiscall COnlineName::~COnlineName(void)" (??1COnlineName@@QAE@XZ) already defined in absonline.obj
bcpcdr.obj : error LNK2005: "public: char * __thiscall COnlineName::getString(void)const " (?getString@COnlineName@@QBEPADXZ) already defined in absonline.obj
好像意思是说已经申明过了,但是这个是不可能的呀。
代码如下(非全部代码,只是节选了一部分用到的代码):
absonline.h
class COnlineName
{
public:
// constructor
COnlineName(const char *name);
// destructor
~COnlineName(void);
bool operator < (const COnlineName &other) const
{
bool bRes = false;
if(ACE_OS::strcmp(
m_userAccounts, other.m_userAccounts) < 0)
bRes = true;
return bRes;
}
char *getString(void) const;
private:
char m_userAccounts[const_user_accounts_len + 1];
}; // class COnlineName
absonline.cpp
///////////////////////////////////////////////////////////
// begin class COnlineName
///////////////////////////////////////////////////////////
// constructor
COnlineName::COnlineName(const char *name)
{
ACE_OS::memcpy(
this->m_userAccounts, name, const_user_accounts_len);
this->m_userAccounts[const_user_accounts_len] = 0;
}
// destructor
COnlineName::~COnlineName(void)
{
}
char *COnlineName::getString(void) const
{
return (char *)this->m_userAccounts;
}
///////////////////////////////////////////////////////////
// end class COnlineName
///////////////////////////////////////////////////////////