唯一实例。
来源:互联网 发布:淘宝卖美女图片违规 编辑:程序博客网 时间:2024/05/18 22:54
多次相当于New对象、结果只返回相同一段空间位置。并且内部提供计数、以便于最后一次判断释放。
感悟就是,编程。要清楚自己写的是什么,包括内部实现过程机制原理。
OnlyObject.h
//
//////////////////////////////////////////////////////////////////////
#if !defined(AFX_ONLYOBJECT_H__ED2AA7E1_7F55_41F2_8DEC_FF33EABDD3C5__INCLUDED_)
#define AFX_ONLYOBJECT_H__ED2AA7E1_7F55_41F2_8DEC_FF33EABDD3C5__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
class COnlyObject
{
//接口函数
public:
virtual ~COnlyObject();
static COnlyObject* InitObject();// 私有化构造函数,类像外部提供静态接口,不需要成员调用(static)。| 应该返回指针类型而不是变量。
//接口变量
protected:
//保护函数
COnlyObject();
//保护变量
static COnlyObject* spOnlyObject;
static int snCount;
};
#endif // !defined(AFX_ONLYOBJECT_H__ED2AA7E1_7F55_41F2_8DEC_FF33EABDD3C5__INCLUDED_)
OnlyObject.cpp: implementation of the COnlyObject class.
//
//////////////////////////////////////////////////////////////////////
#include "stdafx.h"
#include "OnlyObject.h"
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
int COnlyObject::snCount = 0;
COnlyObject *COnlyObject::spOnlyObject = NULL;
COnlyObject::COnlyObject()
{
}
COnlyObject::~COnlyObject()
{
if (NULL != spOnlyObject)
{
snCount--;
if (0 == snCount)
{
delete spOnlyObject;
spOnlyObject = NULL;
}
}
}
COnlyObject* COnlyObject::InitObject()
{
if (NULL == spOnlyObject)
{
spOnlyObject = new COnlyObject;
}
snCount++;
return spOnlyObject;
}
- 唯一实例
- 唯一实例。
- 启动唯一实例
- 创建唯一实例
- 程序实例唯一
- DotNet平台唯一实例运行
- 模仿C++唯一实例实现
- 实现程序唯一实例运行
- 单例 -- 唯一的实例
- VC++6.0中控制运行唯一实例
- 控制类实例的唯一性
- 建立唯一的单文档实例
- 单向一对一唯一外键关联实例
- 单向一对一唯一外键关联实例
- 建立唯一的单文档实例
- 单件 singleton 唯一的对象实例
- 单向一对一唯一外键关联实例
- 从唯一实例谈静态成员
- block的高级用法(一) -- block传值
- Warning: Error creating LLDB target at path '...LearnCoreData.app'- using an empty LLDB target which
- java实现中文汉字的首字母排序
- Vuejs的一些总结
- JS将时间戳转换时间格式
- 唯一实例。
- android studio 布局无法预览
- RecyclerView和ScrollView嵌套使用
- 爬虫解析之xls文件处理(附录甘肃省爬虫解析代码)
- MySQL存储过程详解 mysql 存储过程
- idea tomcat 1099 端口被占用
- python与c/c++相比的优势
- ExtJs中如何实现点击之后修改类名(class)
- Python的Numpy安装