构造函数设置为private,会怎样?
1.无法静态的创建对象了,即不能通过 A a这种方式创建对象了。只能通过在类的内部的静态成员函数中new一个对象(动态的创建对象)。
#include <iostream>
using namespace std;
class A{
private:
A(){
;
}
public:
static A* get(){
A* a1 = new A();
return a1;
}
~A(){
;
}
};
int main(){
A* a = A::get();
return 0;
}
为什么使用静态成员函数呢?
这个是因为这样get()才是类所拥有的,才能使用A::get() 调用起来
2.子类无法继承这个类了,因为构造函数的顺序是先基类 在类成员对象 最后才是子类。现在基类的构造函数设置为私有了,外部不可访问了。