程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> C++派生類與基類的轉換

C++派生類與基類的轉換

編輯:C++入門知識

每一個派生類對象包含一個基類部分,這就意味著可以像使用基類對象一樣在派生類對象上執行操作。因為派生類對象也是基類對象,所以存在從派生類類型的引用到基類類型的自動轉換,即,可以將派生類對象的引用轉換為基類對象的引用,對指針也類似。
 
基類對象既可以作為獨立對象存在,也可以作為派生類對象的一部分而存在,因此,一個基類對象可能是也可能不是一個派生類對象的一部分,結果沒有從基類引用到派生類引用的自動轉換,指針也是如此。
 
相對於引用或者指針而言,對象轉換的情況更為復雜。雖然一般可以使用派生類型的對象對基類類型對象進行初始化或者賦值,但,沒有從派生類對象到基類類型對象的直接轉換。
可以直接使用派生類的對象對基類對象進行賦值或者初始化。
可以直接使用派生類的引用或者對象對基類引用進行賦值或者初始化。
 
引用轉換不同於轉換對象
 
將派生類對象傳遞給希望接受基類引用的函數,引用直接綁定到該對象,對象本身未被復制。
將派生類對象傳遞給希望接受基類對象的函數,形參類型是固定的-----在編譯和運行時形參都是基類類型對象,如果實參是派生類對象,則該派生類對象的基類部分被復制到形參。
 
派生類到基類轉換的可訪問性
 
像繼承的成員一樣,從派生類到積累的轉換可能是也可能不是可訪問的。轉換是否可訪問取決於在派生類的派生列表中指定的訪問標號。如果是public繼承,則可以,否則不可以轉換。

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