我在网上找到了单例设计模式的代码:
class Foo
{
public:
static Foo& getInstance()
{
static Foo instance;
return instance;
}
private:
Foo() {};
Foo(Foo const&);
Foo& operator=(Foo const&);
}
我不明白构造函数为什么Foo(Foo const&);
和Foo& operator=(Foo const&);
两者都需要。有人可以向我解释一下吗?
您不想让下面的代码失败吗?
int main() {
// Utilizes the copy constructor
Foo x = Foo::getInstance();
Foo y = Foo::getInstance();
// Utilizes the operator=
x = Foo::getInstance();
}
请注意,我们创建了 3 个新实例Foo
在该代码的末尾。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)