型別相容規則是指在需要基類物件的任何地方,都可以使用公有派生類的物件來替代。通過公有繼承,派生類得到了基類中除建構函式、析構函式之外的所有成員。這樣,公有派生類實際就具備了基類的所有功能,凡是基類能解決的問題,公有派生類都可以解決。型別相容規則所指的替代包括以下情況:
1.子類物件可以當作父類物件使用
2.子類物件可以直接賦值給父類物件
3.子類物件可以直接初始化父類物件
4.父類指標可以直接指向子類物件
5.父類引用可以直接引用子類物件
在替代之後,派生類物件就可以作為基類的物件使用,但是只能使用從基類繼承的成員。
型別相容規則是多型性的重要基礎之一。
總結:子類就是特殊的父類 (base *p = &child;)
#includeusing namespace std;
/* 子類物件可以當作父類物件使用
子類物件可以直接賦值給父類物件
子類物件可以直接初始化父類物件
父類指標可以直接指向子類物件
父類引用可以直接引用子類物件
*///子類就是特殊的父類
class parent
void print() };
int main()
c 型別相容性原則
內容源自 傳智播客 型別相容性規則是指在需要基類物件的任何地方,都可以使用公有派生類的物件來替代。通過公有繼承,派生類得到了基類中除建構函式 析構函式之外的所有成員。這樣,公有派生類實際就具備了基類的所有功能,凡是基類能夠解決的問題,公有派生類都可以解決。型別相容性原則包含下面幾種情況 1.子類物件...
型別相容性原則
傳智掃地僧課程學習筆記。賦值相容性原則 1 1 基類指標 引用 指向 子類物件 parent p null p c1 p printp 1 2 指標做函式引數 howtoprint p1 howtoprint c1 1 3引用做函式引數 howtoprint2 p1 howtoprint2 c1 第...
相容性(空格相容性)
在chrome與firefox下顯示的寬度不同,原因是兩個瀏覽器的預設字型不同,給html規定字型即可解決。下面有各種形式的空格,各有不同 不換行空格,按下空格鍵所產生的空格,受字型影響明顯 ensp 半形空格 em寬度的一半 乙個小寫字母的寬度 基本不受字型影響 emsp 全形空格 乙個em寬度 ...