数据结构与算法案例集-001-数据结构基础
来源:互联网 发布:卖牛仔裤的淘宝店铺 编辑:程序博客网 时间:2024/05/01 13:14
案例1-1 内存的分配与回收
学习动态内存分配和对象的自我生命管理。
源文件:object_cd.cpp
///////////////////////////////////////////////////////////////
//
// object_cd.cpp: 对象的动态创建与生命的自我管理;
//
///////////////////////////////////////////////////////////////
#include <stdio.h>
//CXBufferItem: 测试用对象;
class CXBufferItem
{
public:
//对象的引用计数增加;
unsigned long AddRef()
{
m_cRef ++;
return m_cRef;
}
//对象的引用计数减少;
unsigned long Release()
{
m_cRef --;
if(m_cRef <= 0)
{
//当引用计数不大于0时,删除自己;
delete this;
return 0;
}
return m_cRef;
}
public:
CXBufferItem() {m_cRef = 1;};
~CXBufferItem(){m_cRef = 0;};
private:
long m_cRef;
};
//创建测试用的对象;
void* CreateBufferItem()
{
return new CXBufferItem();
}
void main(void)
{
CXBufferItem* pxbi = NULL;
//动态创建动象;
pxbi = (CXBufferItem*)CreateBufferItem();
if(pxbi != NULL)
{
//对象的自我删除;
pxbi->Release();
}
return ;
}
在该案例中,对象pxbi动态创建;被创建时,其自身的引用计数为1;当对象不再需要时,调用对象的Release来释放自己。对象的Release首先减小它的引用计数的值,当该值不大于0时,对象直接删除自已。对象的AddRef接口可以增加自己的引用计数。
- 数据结构与算法案例集-001-数据结构基础
- 数据结构与算法案例集-002-算法基础
- 数据结构与算法基础
- 数据结构与算法基础
- 基础数据结构与算法
- 数据结构与算法基础
- 数据结构与算法-基础数据结构(链表)
- 数据结构与算法学习总结-数据结构基础
- 【数据结构与算法基础】序
- 数据结构与算法基础1
- 数据结构与算法基础总结
- 数据结构与算法基础总结
- 基础数据结构与算法--序
- 数据结构基础与常见算法
- 数据结构基础与基础算法总结
- 算法基础:数据结构与算法入门概览
- 软考(1)--数据结构与算法基础
- 数据结构与算法基础——概要
- 我的博客开张啦!
- js--表格操纵之 鼠标经过整行变色
- SQL Server 2005 不允许远程连接解决方法
- wxWidget类型转换
- 使用ClickOne发布Windows应用程序
- 数据结构与算法案例集-001-数据结构基础
- 应用DIV+CSS编码时容易犯的一些错误
- 数据结构与算法案例集-002-算法基础
- java新手学习使用FtpClient
- Windows延缓写入失败
- Administering and Securing the Apache Server
- Python Programming on WIN32
- IBM推新刀片服务器 着重加强安全性
- Java Web Services