c++单列模式学习
本帖最后由 52lxw 于 2019-10-8 10:49 编辑简单的说,一个类只能生成一个对象,看看c++是怎么实现的。
代码:
// study.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include <iostream>
using namespace std;
class CSingleton
{
private:
CSingleton();
static CSingleton *pInstance;
public:
static CSingleton* GetInstance(){
if (pInstance == NULL){
pInstance = new CSingleton();
return pInstance;
}
return pInstance;
}
void Address()
{
printf("%08x\n", pInstance);
}
~CSingleton();
};
CSingleton::CSingleton()
{
}
CSingleton::~CSingleton()
{
}
CSingleton* CSingleton::pInstance = NULL;
int _tmain(int argc, _TCHAR* argv[])
{
auto a = CSingleton::GetInstance();
auto b = CSingleton::GetInstance();
a->Address();
b->Address();
getchar();
return 0;
}
虽然调用了两次GetInstance,但在程序运行的时候有且只有一个对象。
谢谢楼主分享,请问这是哪本书上的? 谢谢分享 还以为是新内容单列,果不其然是单例 支持中 厉害了 不懂,这个是初学者看的吗 ①私有化:拷贝构造,静态变量(内部维护指针使用),构造函数 都进行私有化。
②公共方法:设置静态的接口方法。
③静态变量初始化(一般是在某个作用于下)。
④使用(类名::接口方法名)的方式创建对象。 禁闭岛 发表于 2019-10-8 11:19
谢谢楼主分享,请问这是哪本书上的?
同问!我也想知道是什么书的截图
页:
[1]