C 筆記 型別相容和多型

2021-07-09 03:57:15 字數 919 閱讀 4215

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 返回型別 函式名 形參表 在基類中的某個成員函式被宣告為虛函式後,此虛...