在替代之後,派生類物件就可以作為基類的物件使用,但是只能使用從基類繼承的成員(通過公有繼承,派生類得到了基類中除建構函式、析構函式之外的所有成員)。
示例三種替代情況:
classa;
classb:
public a
;a a,
*aa;
b b;
//1、派生類的物件可以賦值給基類物件;
a = b;
//2、派生類的物件可以初始化基類的引用;
a &aaa = b;
//3、派生類物件的位址可以賦給指向基類的指標
aa =
&b;
優點:由於型別相容規則的引入,對於基類及其公有派生類的物件,我們可以使用相同的函式統一處理(因為當函式的形參為基類的物件時,實參可以是派生類的物件),而沒有必要為每乙個類設計單獨的模組,大大提高了程式的效率。
#include
#include
class
b0//公有成員函式};
C 筆記 型別相容和多型
1 型別相容性原則 1 子類物件可以當作父類物件使用 2 子類物件可以直接賦值給父類物件 3 子類物件可以直接初始化父類物件 4 父類指標可以直接指向子類物件 5 父類引用可以直接引用子類物件 2 c 的多型 即一條語句可以表現出不同的形態 話不多說,上 includeusing namespace...
型別相容規則與同名隱藏規則
型別相容規則 通過公有繼承,派生類得到了基類中除建構函式 析構函式之外的所有成員。這樣,公有派生類實際就具備了基類的所有功能,凡是基類能解決的問題,公有派生類都可以解決。乙個公有派生類的物件在使用上可以被當作基類的物件 通過基類物件名 指標只能使用從基類繼承的成員 include using nam...
GO 物件導向 多型之型別斷言
在物件導向 多型這一節最後沒有進行型別斷言,也就是型別判斷。那麼在這篇文章中就簡單的介紹一下 在進行型別斷言會有倆種方式 switch是使用型別來判斷 也就是s.type if判斷是把指標跟定義的值判斷 package main import fmt 定義工人介面 type worker1 inte...