C++编写一个类OnlyOne,这个类只能有一个对象
时间: 2024-04-30 11:22:28 浏览: 84
以下是一个可能的C++实现:
```c++
class OnlyOne {
private:
static bool instance_created;
static OnlyOne* instance;
OnlyOne() {} // 私有构造函数,确保只能通过getInstance()创建对象
public:
static OnlyOne* getInstance() {
if (!instance_created) {
instance = new OnlyOne();
instance_created = true;
}
return instance;
}
~OnlyOne() {
instance_created = false;
}
};
bool OnlyOne::instance_created = false;
OnlyOne* OnlyOne::instance = nullptr;
```
这个类使用了单例模式的思想,保证只有一个对象存在。其中,静态变量`instance_created`和`instance`用于保存唯一的对象。构造函数被声明为私有,确保只有`getInstance()`方法能够创建对象。`getInstance()`方法会检查是否已经创建了对象,如果没有则创建,否则直接返回现有的对象。析构函数在对象销毁时将`instance_created`标记为false,以便后续可以重新创建对象。
阅读全文