首页 > 编程语言 > 详细

C++笔记1: 单例模式。(一个简单的设计模式在C++中复杂出翔。。)

时间:2014-04-03 10:40:04      阅读:543      评论:0      收藏:0      [点我收藏+]

C++ 如果用指针new一个单例,内存不容易释放,所以Java和C#等语言中的单例模式在C++不适用。。。

C++中,new申请的内存必须由delete释放,例如:

1 Point p1;
2 Point *p2 = new Point();

 

这里p1没有用new创建,不用delete释放,程序结束后会自动释放,而p2用new创建,必须有对应的delete来释放。

所以单例模式中,我们可以用p1这种方式:

bubuko.com,布布扣
 1 Point
 2 {
 3 public:
 4     static Point *getInstance()
 5     {
 6         return &instance;
 7     }
 8 
 9 private:
10     Point()
11     {
12     }
13 
14     static Point instance; //这样创建,不用delete释放,线程也安全。
15 };
bubuko.com,布布扣

 

注意!!
一定要在类外面加上一句:

static Point Point::instance;

 

类中只是声明,类外面才是定义。


C++真心复杂出翔。。。

C++笔记1: 单例模式。(一个简单的设计模式在C++中复杂出翔。。),布布扣,bubuko.com

C++笔记1: 单例模式。(一个简单的设计模式在C++中复杂出翔。。)

原文:http://www.cnblogs.com/wolfred7464/p/3641645.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!