zoukankan      html  css  js  c++  java
  • C++将类的构造函数、析构函数声明为private或者protected的用途

    如果将构造函数、析构函数声明为private或者protected,表示不能从类的外部正常调用构造和析构函数了。

    这种用法的通常使用的场景如下:

    1、如果不想让外面的用户直接构造一个类A的对象,而希望用户只能构造这个类A的子类,那就把这个类A的构造函数、析构函数声明为protected,而将类A子类的构造函数和析构函数声明为public。例如:

       

    class A
    { protected: A(){}
      public: ....
    };
    calss B : public A
    { public: B(){}
      ....
    };
    
    A a; // error
    B b; // ok

    2、如果将构造函数、析构函数声明为private,那只能在这个类的成员内构造这个类的对象了。
    class A{
    private:
        A(){  }
        ~A(){ }
    
    public:
        void Instance()//类A的内部的一个函数
        {
            A a;
        }

      static A& GetInstance()
    {
    static A a;
    return a;
    }
    };
  • 相关阅读:
    qt install (1)
    learning rewind func
    learning strrchr func
    learning memchr func
    git lfs setpu(4)
    大端与小端
    git branch/meger step(3)
    git log/show/HEAD step(2)
    调用外部EXE文件
    获取计算机上的所有进程
  • 原文地址:https://www.cnblogs.com/guagua2016/p/5958270.html
Copyright © 2011-2022 走看看