1.類型兼容性原則
在上一節(jié)的C++中的繼承中介紹了什么是類型兼容性原則。所謂的類型兼容性原則是指子類公有繼承自父類時,包含了父類的所有屬性和方法,因此父類所能完成的功能,使用子類也可以替代完成,子類是一種特殊的父類。所以可以使用子類對象初始化父類對象,可以用父類指針指向子類對象,可以用父類引用來引用子類對象。
2.函數(shù)的重寫
函數(shù)的發(fā)生在類的繼承過程中,所謂的函數(shù)的重寫是指在繼承中,子類定義了與父類函數(shù)原型相同的函數(shù),即定義了和父類中一樣的函數(shù)。
3.類型兼容性原則遇上函數(shù)的重寫
# include<iostream>using namespace std;/* 定義父類 */class Parent {public: /* 定義print函數(shù) */ void print() { cout << "Parent print()函數(shù)" << endl; } };/* 定義子類繼承自父類,并重寫父類的print函數(shù) */class Child :public Parent {public: /* 重寫父類的print函數(shù) */ void print() { cout << "Child print()函數(shù)" << endl; } };int main() { Child c; /* 調用子類對象的print函數(shù),打印子類的print函數(shù) */ c.print(); /* 通過使用作用域操作符調用父類的print函數(shù),打印父類的print函數(shù) */ c.Parent::print(); /* 當我們使用類型兼容性原則的時候,發(fā)現(xiàn)調用的函數(shù)是父類的print函數(shù),這是符合編譯器規(guī)則的 */ Parent p1 = c; p1.print(); Parent *