博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C++单例模式的创建
阅读量:4298 次
发布时间:2019-05-27

本文共 696 字,大约阅读时间需要 2 分钟。

#include "stdafx.h"#include 
using namespace std;class Singleton{private: Singleton(); ~Singleton(); //static Singleton *instance;//本来想这样创建,但是静态成员变量必须初始化 public: static Singleton* getInstance(){ //if (instance == NULL) //{
static Singleton *instance;//局部变量省去删除 //} return instance; }};int _tmain(int argc, _TCHAR* argv[]){ Singleton *s1 = Singleton::getInstance(); Singleton *s2 = Singleton::getInstance(); if (s1 == s2) { cout << "指向相同地址" << endl; } return 0;}

以上代码能成功实现一个单例模式。

编写时出现的错误:
1、如果定义一个静态成员变量的话就必须初始化,很多参考代码,并没有初始化。
2、在多线程的环境下却不行了,因为很可能两个线程同时运行到if (instance == NULL)这一句,导致可能会产生两个实例。PS:参考网上的

转载地址:http://jinws.baihongyu.com/

你可能感兴趣的文章
C++ STL之正则表达式
查看>>
超强vim配置文件[转]
查看>>
Vim代码补全插件YouCompleteMe的自动化安装[转]
查看>>
虚函数的实调用与虚调用
查看>>
memcpy与memmove区别和实现
查看>>
DNS域名解析过程
查看>>
IP、TCP、UDP首部详解
查看>>
move和forward源码分析[转]
查看>>
智能指针之make_unique与make_shared
查看>>
使用智能指针的注意事项
查看>>
C++之失控指针、迷途指针、野指针、悬浮指针及空指针[转]
查看>>
C++之RAII机制[转]
查看>>
printf格式化输出符号详细说明[转]
查看>>
最长回文子串:Manacher算法[转]
查看>>
shared_ptr线程安全性分析[转]
查看>>
为什么多线程读写shared_ptr要加锁?[转]
查看>>
C++之friend关键字
查看>>
C++之operator关键字[转]
查看>>
Java的反射机制
查看>>
Java的内省机制
查看>>