程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> 第15章 面向對象編程(7)

第15章 面向對象編程(7)

編輯:C++入門知識

15.3.2 基類到派生類的轉換
從基類到派生類的自動轉換是不存在的。需要派生類對象時不能使用基類對象。
沒有從基類類型到派生類型的(自動)轉換,原因在於基類對象只能是基類對象,它不能包含派生類型的成員。如果允許用基類對象給派生類型對象賦值,那麼就可以試圖使用該派生類對象訪問不存在的成員。
甚至當基類指針或引用實際綁定到派生類對象時,從基類到派生類的轉換也存在限制。
編譯器在編譯時無法知道特定轉換在運行時實際上是安全的。編譯器確定轉換是否合法,只看指針或引用的靜態類型。
在這些情況下,如果知道從基類到派生類的轉換是安全的,就可以使用static_cast強制編譯器進行轉換,或者,可以用dynamic_cast申請在運行時進行檢查。
 

摘自 xufei96的專欄

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