最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

解析C++中虛析構函數(shù)的作用

 更新時間:2013年05月29日 10:23:15   作者:  
本篇文章是對C++中虛析構函數(shù)的作用進行了詳細的分析介紹,需要的朋友參考下
我們知道,用C++開發(fā)的時候,用來做基類的類的析構函數(shù)一般都是虛函數(shù)。可是,為什么要這樣做呢?下面用一個小例子來說明:   
有下面的兩個類:
復制代碼 代碼如下:

class ClxBase
{
public:
    ClxBase() {};
    virtual ~ClxBase() {};
    virtual void DoSomething() { cout << "Do something in class ClxBase!" << endl; };
};
class ClxDerived : public ClxBase
{
public:
    ClxDerived() {};
    ~ClxDerived() { cout << "Output from the destructor of class ClxDerived!" << endl; };
    void DoSomething() { cout << "Do something in class ClxDerived!" << endl; };
};

代碼
復制代碼 代碼如下:

ClxBase *pTest = new ClxDerived;
pTest->DoSomething();
delete pTest;

的輸出結果是:
Do something in class ClxDerived!
Output from the destructor of class ClxDerived!
這個很簡單,非常好理解。
但是,如果把類ClxBase析構函數(shù)前的virtual去掉,那輸出結果就是下面的樣子了:
Do something in class ClxDerived!
也就是說,類ClxDerived的析構函數(shù)根本沒有被調用!一般情況下類的析構函數(shù)里面都是釋放內存資源,而析構函數(shù)不被調用的話就會造成內存泄漏。我想所有的C++程序員都知道這樣的危險性。當然,如果在析構函數(shù)中做了其他工作的話,那你的所有努力也都是白費力氣。

所以,文章開頭的那個問題的答案就是--這樣做是為了當用一個基類的指針刪除一個派生類的對象時,派生類的析構函數(shù)會被調用。

當然,并不是要把所有類的析構函數(shù)都寫成虛函數(shù)。因為當類里面有虛函數(shù)的時候,編譯器會給類添加一個虛函數(shù)表,里面來存放虛函數(shù)指針,這樣就會增加類的存儲空間。所以,只有當一個類被用來作為基類的時候,才把析構函數(shù)寫成虛函數(shù)。

相關文章

  • 指針操作數(shù)組的兩種方法(總結)

    指針操作數(shù)組的兩種方法(總結)

    下面小編就為大家?guī)硪黄羔槻僮鲾?shù)組的兩種方法(總結)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-05-05
  • Qt 中集成mqtt協(xié)議的使用方法

    Qt 中集成mqtt協(xié)議的使用方法

    文章介紹了如何在工程中引入qmqtt庫,并通過聲明一個單例類來暴露訂閱到的主題數(shù)據(jù),本文通過實例代碼給大家介紹的非常詳細,感興趣的朋友一起看看吧
    2025-02-02
  • 基于C++詳解數(shù)據(jù)結構(附帶例題)

    基于C++詳解數(shù)據(jù)結構(附帶例題)

    數(shù)據(jù)結構作為每一個IT人不可回避的問題,本文基于C++編寫,下面這篇文章主要給大家介紹了關于數(shù)據(jù)結構的相關資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-06-06
  • C語言實現(xiàn)打飛機小游戲

    C語言實現(xiàn)打飛機小游戲

    這篇文章主要為大家詳細介紹了C語言實現(xiàn)簡單的打飛機小游戲,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-02-02
  • 虛函數(shù)被類的構造析構函數(shù)和成員函數(shù)調用虛函數(shù)的執(zhí)行過程

    虛函數(shù)被類的構造析構函數(shù)和成員函數(shù)調用虛函數(shù)的執(zhí)行過程

    虛函數(shù)被類的構造析構函數(shù)和成員函數(shù)調用虛函數(shù)的執(zhí)行過程,需要的朋友可以參考下
    2013-02-02
  • C 語言基礎之C 語言三大語句注意事項

    C 語言基礎之C 語言三大語句注意事項

    今天講解的內容,則是自己對于這三種語句一些細節(jié)的簡單介紹,分支語句:if,switch、循環(huán)語句:while,for,do while、goto語句,感興趣的小伙伴可以參考下面具體的文章內容
    2021-09-09
  • 解決C++ openCV無法讀取視頻但是可以讀取圖像的問題記錄

    解決C++ openCV無法讀取視頻但是可以讀取圖像的問題記錄

    在使用OpenCV的cv::VideoCapture讀取視頻文件時,可能會遇到無法讀取特定格式,如MP4的視頻文件的問題,本文介紹解決C++ openCV無法讀取視頻但是可以讀取圖像的問題記錄,感興趣的朋友跟隨小編一起看看吧
    2024-09-09
  • C語言數(shù)據(jù)的存儲詳解

    C語言數(shù)據(jù)的存儲詳解

    本文詳細講解了C語言數(shù)據(jù)的存儲,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-12-12
  • Qt設計與實現(xiàn)軟鍵盤效果

    Qt設計與實現(xiàn)軟鍵盤效果

    這篇文章主要為大家詳細介紹了Qt設計與實現(xiàn)軟鍵盤效果的相關知識,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學習一下
    2024-11-11
  • c++代碼實現(xiàn)tea加密算法的實例詳解

    c++代碼實現(xiàn)tea加密算法的實例詳解

    這篇文章主要介紹了c++代碼實現(xiàn)tea加密算法,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-04-04

最新評論

克拉玛依市| 乳源| 镶黄旗| 安阳县| 新沂市| 仙桃市| 太谷县| 英超| 清徐县| 汝阳县| 蓝田县| 威海市| 噶尔县| 溧水县| 轮台县| 甘南县| 宁海县| 虞城县| 梁平县| 新泰市| 连平县| 惠来县| 鄂尔多斯市| 蚌埠市| 磐石市| 丰台区| 呼伦贝尔市| 沙湾县| 盐津县| 来宾市| 射洪县| 扶沟县| 乌兰察布市| 饶阳县| 曲周县| 堆龙德庆县| 启东市| 彭水| 隆尧县| 巴南区| 灵丘县|