是否可以创建一个可以只构建一次的类?如果您尝试创建它的其他实例,则会发生编译时错误。
问问题
8107 次
3 回答
6
实例化是动态的,在运行时。编译错误发生在编译时。所以答案是否定的,在任何第二次实例化时都不可能出现编译错误。
但是,您可以使用单例,但要非常仔细地考虑它是否真的需要。
于 2012-04-28T08:36:34.450 回答
1
只有一个实例的类称为单例类,
有很多方法可以做到这一点。最简单的如下图
class MySingleton
{
public:
static MySingleton& Instance()
{
static MySingleton singleton;
return singleton;
}
// Other non-static member functions
private:
MySingleton() {}; // Private constructor
MySingleton(const MySingleton&); // Prevent copy-construction
MySingleton& operator=(const MySingleton&); // Prevent assignment
};
于 2012-04-28T08:36:07.420 回答
0
为什么编译错误?我认为你只需要实现单例设计模式。看这里
于 2012-04-28T08:35:09.623 回答