手机
当前位置:查字典教程网 >编程开发 >C语言 >C++之CNoTrackObject类和new delete操作符的重载实例
C++之CNoTrackObject类和new delete操作符的重载实例
摘要:本文实例讲述了C++中CNoTrackObject类和newdelete操作符的重载,分享给大家供大家参考。具体如下:头信息:复制代码代码如...

本文实例讲述了C++中CNoTrackObject类和new delete操作符的重载,分享给大家供大家参考。具体如下:

头信息:

复制代码 代码如下:class CNoTrackObject{

public: //在此出过错,没有加public 默认为类的私有变量,MyThreadData继承这个类后也无法访问成员变量

void* operator new(size_t nSize);

void operator delete(void*);

virtual ~CNoTrackObject(){}

};

实现方法如下:

复制代码 代码如下:void* CNoTrackObject::operator new(size_t nSize)

{

//申请一块内存

void* p = ::GlobalAlloc(GPTR , nSize);

return p;

}

void CNoTrackObject::operator delete(void* p)

{

if (p != NULL)

{

::GlobalFree(p);

}

}

使用过程如下:

复制代码 代码如下:struct MyThreadData:public CNoTrackObject

{

MyThreadData* pNext;

int nShortData;

};

for (int i=0;i<10;i++)

{

<span>pData = new MyThreadData;</span>

pData->nShortData = i;

list.AddHead(pData);

}

//遍历链表,释放MyThreadData对象占用的空间

pData = (MyThreadData*)list.GetHead();

while(pData != NULL)

{

MyThreadData* pNextData = pData->pNext;

printf("The value is %dn",pData->nShortData);

<span>delete pData;</span>

pData = pNextData;

}

希望本文所述对大家的C++程序设计有所帮助

【C++之CNoTrackObject类和new delete操作符的重载实例】相关文章:

C++ new/delete相关知识点详细解析

C++中的操作符重载详细解析

C语言字符串操作总结大全(超详细)

C++多继承同名隐藏实例详细介绍

C++中抽象类和接口的区别介绍

C++类中的常量介绍

基于C++浮点数(float、double)类型数据比较与转换的详解

C 语言基础教程(一)颜色加亮

C++中不能被重载的运算符介绍

C++中4种类型转换方式 cast操作详解

精品推荐
分类导航