C++学习心得

私有构造函数类的特点

  1. 不能实例化,因为实例化时类外部无法访问类的私有构造函数;
  2. 不能被继承,因为派生类无法调用类的私有构造函数
  3. 可以通过定义一个static方法或者友元类来创建类对象

示例

利用在某个static函数中创建了该class的对象,并以引用或者指针的形式将其返回,不能以值的形式返回(在函数执行完毕之后,对象会自动销毁,失去作用域)。

class WonderfulClass
{
public:
       static WonderfulClass* makeAnObject()
       {
              // 创建一个WonderfulClass对象并返回其指针

              return (new WonderfulClass);
       }
private:
       WonderfulClass() { }
};


int main()
{
       WonderfulClass *p = WonderfulClass::makeAnObject();

       ... // 使用*p


       delete p;  // Not neccesary here, but it's a good habit.

       return 0;
}

参考链接

C++私有构造函数

你可能感兴趣的:(C++学习心得)