如何定义一个类A
int main(){
A a; //第一行
A *b=new A(); //第二行
}
如何定义一个类 编译时,使得第一行报错,第二行正确
[quote java]#include "stdio.h"
class test
{
public:
static test* getinstance()
{
return(new test());
}
int puthello()
{
puts("hello world");
return 0;
}
private:
test()
{}
};
int main(void)
{
//test a; 编译不通过
//test *a = new test(); 编译不通过
test *a = test::getinstance();
a->puthello();
return 0;
}[/quote]
可以将构造函数定义为私有,然后利用单例的方式来获取实例,这样第一行应该会报错。
你的这个需求感觉有点怪,呵呵!!
A a; A *b=new A(); 是一样的呀!!都是实例化对象
不知道是不是这有这种需求 :wink:
:cry:
程序1:
int main()
{
A a;
return 0;
}
程序2:
int main()
{
A *b=new A();
return 0;
}
如何定义类A,使得程序1编译错误,程序2编译正确,且运行正确?