c 多型之型別相容規則

2021-10-01 19:15:21 字數 752 閱讀 4955

在替代之後,派生類物件就可以作為基類的物件使用,但是只能使用從基類繼承的成員(通過公有繼承,派生類得到了基類中除建構函式、析構函式之外的所有成員)。

示例三種替代情況:

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...