您的位置:首页 > 编程语言 > C语言/C++

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

2014-04-02 21:36 411 查看
C++ 如果用指针new一个单例,内存不容易释放,所以Java和C#等语言中的单例模式在C++不适用。。。

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

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


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

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

class Point
{
public:
static Point *getInstance()
{
return &instance;
}

private:
Point()
{
}

static Point instance; //这样创建,不用delete释放,线程也安全。
};


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

Point Point::instance;


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

C++真心复杂出翔。。。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: