构造函数私有化可以帮你解决这个问题
给你个简单的例子
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;
}
我不知道你要实现什么目的,但是类是面向对象的,这就决定了可以用类创建许多实例。但是从机制上说,我们可以只在类中创建类方法和类成员(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")}
}
另外,希望你可以把你写这样代码的目的告诉我,我们可以更详细的讨论
。。中大软院实验手册的实验二。第2题。。。。不知道TA知道不。。
同学,你中大软院的吧。。。
使用 Singleton方法,如果不使用Singleton,也可以实现
需要再构造函数中做出判断,保证构造函数中部分代码只能被执行一次