1:型別相容性原則:
1>子類物件可以當作父類物件使用
2>子類物件可以直接賦值給父類物件
3>子類物件可以直接初始化父類物件
4>父類指標可以直接指向子類物件
5>父類引用可以直接引用子類物件
2:c++的多型:即一條語句可以表現出不同的形態
話不多說,上**:
#includeusing namespace std;
class parent
void print()
void print()
private:
int b;
};int main(void)
編譯執行,結果如下:
我們發現base不管指向父類還是子類,呼叫print都是呼叫父類中的print方法。c++中的多型就是要實現如果指向父類,就呼叫父類的方法,如果指向子類,就呼叫子類的方法,這才是virtual的真正所在,我們給父類的print方法新增virtual屬性,子類可以新增,也可以不新增,預設都是virtual的,一般提倡寫明virtual,如下
class parent
virtual void print()
virtual void print()
private:
int b;
};
再編譯執行結果如下:
我們發現這時,如果指向父類就呼叫父類的print,指向子類就呼叫子類的print。這就是c++多型:一條語句多種形態。
c 多型之型別相容規則
在替代之後,派生類物件就可以作為基類的物件使用,但是只能使用從基類繼承的成員 通過公有繼承,派生類得到了基類中除建構函式 析構函式之外的所有成員 示例三種替代情況 classa classb public a a a,aa b b 1 派生類的物件可以賦值給基類物件 a b 2 派生類的物件可以初始...
型別相容原則(C )
型別相容原則是指在需要基類物件的任何地方,都可以使用公有派生類的物件來替代。通過公有繼承,派生類得到了基類中除建構函式 析構函式之外的所有成員。這樣,公有派生類實際具備了基類的所有功能,凡是基類能解決的問題,公有派生類都可以解決。型別相容原則中所指的替代包含以下情況。1 派生類的物件可以隱含轉換為基...
c 筆記 多型
編譯時的多型是通過靜態連編來實現的 執行時的多型是通過動態連編來實現的 利用虛函式機制,c 可部分地採用動態連編 在c 中,編譯時的多型性主要是通過函式過載和運算子過載實現的,執行時多型性主要是通過虛函式來實現的 virtual 返回型別 函式名 形參表 在基類中的某個成員函式被宣告為虛函式後,此虛...