內容源自: 傳智播客
型別相容性規則是指在需要基類物件的任何地方,都可以使用公有派生類的物件來替代。通過公有繼承,派生類得到了基類中除建構函式、析構函式之外的所有成員。這樣,公有派生類實際就具備了基類的所有功能,凡是基類能夠解決的問題,公有派生類都可以解決。型別相容性原則包含下面幾種情況:
1. 子類物件可以當做父類物件使用。
2. 子類物件可以直接賦值給父類物件
3, 子類物件可以直接初始化父類物件
4. 父類指標可以直接指向子類物件
5. 父類引用可以直接指向子類物件
在替代之後, 派生類物件就可以作為基類物件使用,但是只能使用從基類繼承的成員。型別相容性規則是多型的重要基礎之一。
#includeusing namespace std;
// c++中的型別相容性原則:
class parent
parent()
//父類的拷貝建構函式
parent(const parent& obj)
private:
int a;
};class child: public parent
private:
int c;
};void howtoprint(parent* p)
void howtoprint1(parent p)
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寬度 ...