问答题 C++中如何阻止一个类被实例化
【正确答案】
【答案解析】C++中可以通过使用抽象类,或者将构造函数声明为private阻止一个类被实例化。抽象类之所以不能被实例化,是因为抽象类不能代表一类具体的事物,它是对多种具有相似性的具体事物的共同特征的一种抽象。例如,声明一个抽象类车,但是却不能用这个类来创造某个具体的事物来,只能派生一个汽车,才可以产生出来。
引申:
1)一般在什么时候将构造函数声明为private?
例如,要阻止编译器生成默认的复制构造函数的时候。
2)什么时候编译器会生成默认的复制构造函数?
只要自己没写,而程序需要,都会生成。
3)如果已经写了一个构造函数,编译器还会生成复制构造函数吗?
会。