程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程解疑 >> 派生類-c++繼承的時候同名函數的遮蔽問題

派生類-c++繼承的時候同名函數的遮蔽問題

編輯:編程解疑
c++繼承的時候同名函數的遮蔽問題

派生類的函數和基類的函數同名時應該派生類的的遮蔽基類的,為什麼這個程序最後運行的是基類的函數?圖片

最佳回答:


因為樓主基類的display函數不是虛函數
C++重要性質:
1、如果你以一個"基類之指針"指向一個"派生類之對象",那麼經由該指針你只能調用該基類所定義的函數
2、如果你以一個“派生類之指針”指向一個“基類之對象”,你必須先做明顯的轉型操作(explicit cast),這種作法很危險。B* b = (B*)&A_obj;
3、如果基類和派生類都定義了“相同名稱之函數”,那麼通過對象指針調用成員函數時,到底調用了那個函數,必須視該指針的原始類型(B)而定,而不是視指針實際所指的對象的類型而定,這與第1點其實意義相通

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved