gpt4 book ai didi

C++之CNoTrackObject类和new delete操作符的重载实例

转载 作者:qq735679552 更新时间:2022-09-28 22:32:09 26 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章C++之CNoTrackObject类和new delete操作符的重载实例由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

本文实例讲述了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 style="color:#ff0000;">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 %d\n",pData->nShortData);          <span style="color:#ff0000;">delete pData;</span>          pData = pNextData;      } 。

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

最后此篇关于C++之CNoTrackObject类和new delete操作符的重载实例的文章就讲到这里了,如果你想了解更多关于C++之CNoTrackObject类和new delete操作符的重载实例的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com