中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

c++虛函數和純函數的區別是什么

c++
小億
93
2023-10-25 19:51:17
欄目: 編程語言

C++中的虛函數和純虛函數都是用來實現多態性的機制,但它們有一些不同之處。

虛函數是在基類中聲明的,可以在派生類中進行重寫,它允許在運行時根據對象類型來調用相應的函數。虛函數可以被派生類重寫,也可以選擇不重寫。如果派生類中沒有重寫虛函數,那么將會調用基類中的虛函數實現。

純虛函數是在基類中聲明的沒有實現的虛函數,它的函數體被設置為0。純虛函數強制派生類去實現它,派生類必須提供相應的實現。如果派生類沒有實現純虛函數,那么派生類也將成為抽象類,無法實例化。

區別總結如下:

  1. 虛函數有默認的實現,派生類可以選擇重寫;純虛函數沒有默認的實現,派生類必須重寫。
  2. 虛函數可以被派生類選擇性地重寫,也可以不重寫;純虛函數必須在派生類中進行重寫。
  3. 含有純虛函數的類成為抽象類,無法實例化;虛函數可以實例化。
  4. 虛函數可以在基類中有實現,也可以沒有實現;純虛函數在基類中沒有實現,只有聲明。
  5. 虛函數可以被調用,即使通過基類的指針或引用;純虛函數只能通過派生類的實例來調用。

總的來說,虛函數和純虛函數都是用于實現多態性的,但純虛函數更加強制性,要求派生類必須提供實現。

0
资源县| 米易县| 松桃| 乌兰察布市| 河北省| 清水河县| 通化县| 陆丰市| 大足县| 蕉岭县| 黑龙江省| 吕梁市| 揭西县| 涿州市| 稻城县| 扶余县| 新乐市| 沂水县| 什邡市| 金川县| 广灵县| 镇赉县| 桦南县| 怀宁县| 江永县| 南阳市| 凤台县| 三门县| 黄山市| 隆尧县| 堆龙德庆县| 彰化县| 石嘴山市| 盐边县| 安泽县| 新宾| 福安市| 华坪县| 仙游县| 紫金县| 伊通|