C++|使用VS2013 实现一个简单的单例模式singleton

使用VS2013 实现一个简单的单例模式singleton
【C++|使用VS2013 实现一个简单的单例模式singleton】1.在singleton.h 中加入以下内容

#ifndef SINGLETON #define SINGLETON//方便之后的调用,MyClass::Instance()->GetVal() 太长,现在变成MyCls->GetVal(); #define MyCls MyClass::Instance()class MyClass { public: int GetVal()const{ return m_int; } void SetVal(int val){ m_int = val; } static MyClass* Instance(); ~MyClass(){}; //严格的说,singleton的析构函数应该是私有的,但是这样有些编译器处理这种情况会出问题private: //以下几个构造函数都设为private,防止被外界调用,限制外界获得类实例的方式只有 MyCls MyClass(){}; MyClass(const MyClass &); MyClass& operator=(const MyClass &); int m_int; }; #endif

2.在singleton.cpp中加入
#include "singleton.h" #include //这个函数必须出现在cpp文件中:如果出现在头文件中,则每个包含改头文件的CPP文件中都会创建一个实例 MyClass* MyClass::Instance() { static MyClass instance; return &instance; }int main() { MyCls->SetVal(5); std::cout << MyCls->GetVal() << std::endl; return 0; }

    推荐阅读