本文转自https://blog.csdn.net/liminyu/article/details/8214294
类的构造函数为 public 时,表明该类的对象可以被任意的创建。例如:
class PublicClass{
public:
PublicClass(){}
};
PublicClass *p = new PublicClass();
类的构造函数为 protected 时,无法通过上面的方法创建对象。protected 构造函数说明:该类是用于派生的。例如:
class ProtectedClass{
protected:
ProtectedClass(){}
};
class Derived : public ProtectedClass{
public:
Derived(){}
};
ProtectedClass *p = new Derived();
类的构造函数为 private 时,表明该类不能被派生。通常在 singleton设计模式中会使用 private 的构造函数,表明全系统只能有一个该类的对象。例如:
class PrivateClass{
private:
PrivateClass(){};
public:
static PrivateClass* GetInstance();
};
PrivateClass* PrivateClass::GetInstance()
{
static PrivateClass inst;
return &inst;
}
PrivateClass *p = PrivateClass::GetInstance();