91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

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

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

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

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

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

區別總結如下:

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

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

0
衡南县| 台州市| 斗六市| 西丰县| 秦皇岛市| 大理市| 阿坝县| 满洲里市| 保山市| 定兴县| 登封市| 泽库县| 永泰县| 宁陵县| 沈丘县| 靖西县| 新龙县| 独山县| 雅安市| 惠水县| 防城港市| 娄底市| 廉江市| 太湖县| 永丰县| 枣庄市| 大宁县| 石渠县| 建宁县| 通渭县| 阳春市| 尚义县| 清涧县| 全南县| 自贡市| 台州市| 连州市| 疏附县| 余江县| 涪陵区| 泾源县|