国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C++ > 正文

C++之CNoTrackObject類和new delete操作符的重載實例

2020-01-26 15:14:54
字體:
來源:轉載
供稿:網友

本文實例講述了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++程序設計有所幫助

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 冕宁县| 仙居县| 兴城市| 论坛| 丘北县| 台南县| 大港区| 神池县| 磐安县| 淳化县| 万全县| 定南县| 诏安县| 张家港市| 安仁县| 西贡区| 石家庄市| 渝中区| 盐城市| 武威市| 沾化县| 洪泽县| 梅州市| 娄底市| 桐乡市| 十堰市| 大姚县| 澄迈县| 洛阳市| 苍梧县| 通江县| 子洲县| 城步| 贵州省| 内乡县| 鄂尔多斯市| 余庆县| 都江堰市| 中宁县| 峨边| 阜康市|