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

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

C++中判斷成員函數是否重寫

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

C++中判斷成員函數是否重寫

判斷一個成員函數是不是虛函數(重寫),有兩個三個條件:

  1. 兩個成員函數各自在基類和派生類中定義;
  2. 基類中定義的成員函數必須帶有關鍵字virtual,派生類的成員函數可帶可不帶。
  3. 這兩個成員函數原型(函數名,函數參數,函數返回類型)必須相同。

注意:如果這兩個函數的返回類型分別為基類和派生類,返回值為指向基類和派生類的指針或引用,則也構成重寫。此返回類型稱為協變。

調用這些成員函數時,使用對象指針,這樣當指針指向不同的對象時,就可以調用不同類的成員函數。

下面給一個程序分析:

#include<iostream>using namespace std;class Grandam{public:  virtual void introduce_self()  {    cout << "I am grandam." << endl;  }};class Mother:public Grandam{public:  void introdude_self()  {    cout << "I am mother." << endl;  }};class Daughter :public Mother{public:  void introduce_self()  {    cout << "I am daughter." << endl;  }};int main(){  Grandam* ptr;  Grandam g;  Mother m;  Daughter d;  ptr = &g;  ptr->introduce_self();  ptr = &m;  ptr->introduce_self();  ptr = &d;  ptr->introduce_self();  return 0;}

結果如圖所示:

從結果可知,每次都執行了成員函數的虛函數introduce_self()版本,解決了繼承來的二義性問題。

感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 饶河县| 宁安市| 原平市| 安陆市| 安西县| 吕梁市| 潮州市| 新田县| 娱乐| 余姚市| 青阳县| 获嘉县| 邵阳县| 九江市| 鄂尔多斯市| 临朐县| 仙居县| 科技| 紫阳县| 明溪县| 卓资县| 德州市| 通道| 如东县| 获嘉县| 普兰县| 海淀区| 鹤岗市| 通州区| 临泽县| 历史| 新龙县| 晋江市| 五大连池市| 卓尼县| 聊城市| 福安市| 建宁县| 武强县| 河北省| 博乐市|