转自http://t.csdn.cn/lkYD4
大佬写的很清晰易懂
#include <iostream>
using namespace std;
class SingletonPattern_V3
{
public:
~SingletonPattern_V3() {
std::cout << "destructor called!" << std::endl;
}
SingletonPattern_V3(const SingletonPattern_V3&) = delete;
SingletonPattern_V3& operator=(const SingletonPattern_V3&) = delete;
static SingletonPattern_V3& Instance() {
static SingletonPattern_V3 m_pInstance;
return m_pInstance;
}
private:
SingletonPattern_V3() {
std::cout << "constructor called!" << std::endl;
}
};
int main()
{
SingletonPattern_V3& instance_1 = SingletonPattern_V3::Instance();
SingletonPattern_V3& instance_2 = SingletonPattern_V3::Instance();
}