定义一个类,确保该类实例化的对象数目最多只能有一个(使用static数据成员和成员函数)

给个代码做例子吧~不是很懂Singleton
2025-05-08 19:45:22
推荐回答(5个)
回答1:

构造函数私有化可以帮你解决这个问题
给你个简单的例子
class WonderfulClass
{
public:
static WonderfulClass* makeAnObject()
{
if (objCount == 0)
{
objCount++;
// 创建一个WonderfulClass对象并返回其指针
return (new WonderfulClass);
}
else
{
return null;
}
}
~WonderfulClass() {objCount--;}
private:
WonderfulClass() { }
static int objCount;
};

int WonderfulClass::objCount = 0;

int main()
{
WonderfulClass *p = WonderfulClass::makeAnObject();
... // 使用*p
delete p;
return 0;
}

回答2:

我不知道你要实现什么目的,但是类是面向对象的,这就决定了可以用类创建许多实例。但是从机制上说,我们可以只在类中创建类方法和类成员(static类型的),给你一个例子:
public class myclass{
public static int i;
public static void main(String args[]){}//可以省略
static void method(){}
public myclass(){
i++;
System.out.print("you have initinlized "+i+"object")}
}
另外,希望你可以把你写这样代码的目的告诉我,我们可以更详细的讨论

回答3:

。。中大软院实验手册的实验二。第2题。。。。不知道TA知道不。。

回答4:

同学,你中大软院的吧。。。

回答5:

使用 Singleton方法,如果不使用Singleton,也可以实现
需要再构造函数中做出判断,保证构造函数中部分代码只能被执行一次