C++之CNoTrackObject类和new delete操作符的重载实例
本文实例讲述了C++中CNoTrackObject类和newdelete操作符的重载,分享给大家供大家参考。具体如下:
头信息:
classCNoTrackObject{
public://在此出过错,没有加public默认为类的私有变量,MyThreadData继承这个类后也无法访问成员变量
void*operatornew(size_tnSize);
voidoperatordelete(void*);
virtual~CNoTrackObject(){}
};
实现方法如下:
void*CNoTrackObject::operatornew(size_tnSize)
{
//申请一块内存
void*p=::GlobalAlloc(GPTR,nSize);
returnp;
}
voidCNoTrackObject::operatordelete(void*p)
{
if(p!=NULL)
{
::GlobalFree(p);
}
}
使用过程如下:
structMyThreadData:publicCNoTrackObject
{
MyThreadData*pNext;
intnShortData;
};
for(inti=0;i<10;i++) { <spanstyle="color:#ff0000;">pData=newMyThreadData;</span> pData->nShortData=i; list.AddHead(pData); } //遍历链表,释放MyThreadData对象占用的空间 pData=(MyThreadData*)list.GetHead(); while(pData!=NULL) { MyThreadData*pNextData=pData->pNext; printf("Thevalueis%d\n",pData->nShortData); <spanstyle="color:#ff0000;">deletepData;</span> pData=pNextData; }
热门推荐
10 五一公司放假祝福语简短
11 追星女孩的祝福语简短
12 给长辈端午祝福语 简短
13 生日祝福语有诗意简短
14 团圆日祝福语简短
15 中秋商务祝福语简短最新
16 温暖文艺简短祝福语短句
17 男孩上学祝福语简短的
18 入住酒店文案祝福语简短