1.父子間的賦值相容(子類物件可以當作父類物件使用(相容性))
#includeusing namespace std;
class parent
void add(int a, int b) };
class child : public parent
};int main()
2.父類指標(引用):當使用父類指標(引用)指向子類物件時
3.特殊的同名函式
class parent
void add(int a, int b)
void print() };
class child : public parent
void print() };
/*編譯以下函式時,編譯器不可能知道指標p究竟指向了什麼,但是編譯器沒有理由報錯,於是,他認為最安全的做法是呼叫父類的print函式,因為父類和子類肯定都有相同的print函式(傳&c時,子類指標退化為父類指標)
*/void how_to_print(parent *p)
int main()
在編譯這個函式的時候,編譯器不可能知道指標p究竟指向了什麼。但是編譯器沒有理由報錯。於是,編譯器認為最安全的做法是呼叫 父類的print函式,因為父類和子類肯定都有相同的print函式。編譯器的這種處理顯然不是我們所期望的,於是引入了多型的概念
5.小結
同名覆蓋引發的問題
子類物件可以直接賦值給父類物件 子類物件可以直接初始化父類物件 父類指標可以直接指向子類物件 父類引用可以直接引用子類物件 同名覆蓋引發的問題.cpp 此檔案包含 main 函式。程式執行將在此處開始並結束。include class parent void add int x void add i...
48 同名覆蓋引發的問題
父子間的賦值相容性原則 子類物件可以當作父類物件使用 相容性 子類可以直接賦值給父類物件,子類物件可以直接初始化父類物件,父類指標可以直接指向子類物件,父類引用可以直接引用子類物件。include include using namespace std class parent void add i...
C 48 同名覆蓋引發的問題
子類物件可以當做父類物件使用 相容性 上述 中,當使用父類指標 引用 指向子類物件的時候 子類物件退化為父類物件 只能訪問父類中定義的成員 可以直接訪問被子類覆蓋的同名成員 子類重定義父類中已經存在的成員函式,並且是在繼承中,這樣叫做函式重寫。函式重寫是同名覆蓋中特殊的一種情況。class pare...