我正在使用 g++ 4.4.1 并且在命名空间内的类中通过引用传递时遇到问题。我在下面创建了能够演示我的问题的测试程序,并且希望有人知道它为什么无法编译
#include <stdio.h>
namespace clshw
{
class hwmgr
{
private:
hwmgr() {};
public:
~hwmgr() {};
static hwmgr* Instance();
int Read(int crumb, int& state);
private:
static hwmgr* instance;
};
}
namespace clshw
{
hwmgr* hwmgr::instance = NULL;
hwmgr* hwmgr::Instance()
{
instance = new hwmgr;
return instance;
}
int hwmgr::Read(int crumb, int state)
{
state = true;
return 1;
}
}
using namespace clshw;
hwmgr *hw = hwmgr::Instance();
int main()
{
int state;
int crumb;
int ret = hw->Read(crumb, state);
}
编译的错误是:
test7.cpp:30: 错误:'int clshw::hwmgr::Read(int, int)' 的原型与类'clshw::hwmgr' test7.cpp:13 中的任何内容都不匹配:错误:候选者是:int clshw ::hwmgr::Read(int, int&)
TIA,基思