面试题2:实现singleton模式

题目

设计一个类,只能生成该类的一个实例

解题思路

用静态构造函数调用私有变量,实现一个函数只能调用一次。

#include
using namespace std;

class CSingleton{
    private:
        //1,构造函数是私有的,不能通过构造函数创建该类实例
        CSingleton(){}
        //2,静态成员变量且私有,指向一个CSinglrton实例
        //同一时间只存在一个这个变量,
        static CSingleton *m_pInstance;
    public:
        int number;
        //通过函数创建实例且唯一
        static CSingleton *GetInstance()
        {
            if(m_pInstance == NULL)
            {
                m_pInstance = new CSingleton;
            }
            return m_pInstance;
        }
        void set_number()
        {
            this->number ++;
        }
        void print_number()
        {
            cout << this->number << endl;    
        }
};

//4,初始化类的静态成员变量
CSingleton *CSingleton::m_pInstance = NULL;


完整代码见Github
参考文章

你可能感兴趣的:(面试题2:实现singleton模式)