我知道有关于单身人士的一百万个问题和答案,但我似乎无法找到解决方案。所以运行的否决票的风险,这是我的问题:C++单身使用:编译器抱怨私有构造函数
我想用从安德烈Alexandrescu的”现代C++设计此单的实现:
头:
class Singleton
{
static Singleton& Instance();
private:
Singleton(){};
Singleton(const Singleton&){};
Singleton& operator=(const Singleton&){};
~Singleton(){};
};
实现:
#include "s.hh"
Singleton& Singleton::Instance()
{
static Singleton instance;
return instance;
}
test:
#include "s.hh"
int main(void)
{
Singleton& single = Singleton::Instance();
return 0;
}
现在,
$g++ A.cc s.cc && ./a.out
In file included from A.cc:1:0:
s.hh: In function ‘int main()’:
s.hh:3:19: error: ‘static Singleton& Singleton::Instance()’ is private
static Singleton& Instance();
^
A.cc:6:42: error: within this context
Singleton& single = Singleton::Instance();
^
有什么不好呢?我坚持......
为class
唉,这就是如果你在早餐前发布问题会发生什么......在原始代码中,我有公开说明符。我会在一分钟后发布“真实”的问题。 – steffen 2013-04-06 08:03:34