C 中的虛函式

2022-08-22 18:21:13 字數 978 閱讀 8009

**:

1 #include 2 #include 3

4using

namespace

std;56

class

base;

1314

void

base::func1()

1718

void

base::func2()

2122

void

base::func3()

2526

void

base::func4()

2930

class derived1:public

base;錯誤,虛函式返回型別需要一致

34void

func3();

35char

func4();

36};

3738

void

derived1::func1()

4142

void

derived1::func3()

4546

char

derived1::func4()

4950

class derived2:public

base;

5455

void

derived2::func1()

5859

intmain()

輸出:

derived1 func1

base func3

base func4

derived1 func4 can change the return type

derived1 func1

總結:1、虛函式必須在父類中必須實現,不實現可以用純虛函式;

2、子類虛函式的返回型別必須與父類中的返回型別一致,普通函式則可以不同;

3、子類虛函式如果引數發生變化,則虛特性消失。

C 中的虛函式 純虛函式

c 最重要的特性就是多型,而多型,就主要通過虛函式實現的。具體的實現過程是 基類中的函式定義為虛函式,派生類發生覆蓋 即函式名稱 引數列表 返回值型別完全相同 的情況下,派生類中的函式也會自動變成虛函式,不論加不加virtual關鍵字。此時,基類與子類物件中都會存在一張虛函式表 因為含有虛函式 具體...

C 中的虛函式

c 中的虛函式 virtual function 1.簡介 虛函式是c 中用於實現多型 polymorphism 的機制。核心理念就是通過基類訪問派生類定義的函式。假設我們有下面的類層次 class a class b public a 那麼,在使用的時候,我們可以 a a new b a foo ...

C 中的虛函式

c 中的虛函式 一 雖然很難找到一本不討論多型性的c 書籍或雜誌,但是,大多數這類討論使多型性和c 虛函式的使用看起來很難。我打算在這篇文章中通過從幾個方面和結合一些例子使讀者理解在c 中的虛函式實現技術。說明一點,寫這篇文章只是想和大家交流學習經驗因為本人學識淺薄,難免有一些錯誤和不足,希望大家批...