C 多型的乙個例子

2021-09-25 11:07:08 字數 497 閱讀 7209

class a

virtual void f2()

static void f3()

virtual void f4() };

class b

virtual void f2()

static void f3()

virtual void f4() };

int main()

執行結果:

a::f1()

b::f1()

a::f3()

b::f2()

分析:類的成員函式和靜態成員函式都在**區;乙個類如果有虛函式,則這個類就會有乙個虛函式表,且有乙個指標指向虛函式表,虛函式表儲存類中的所有虛函式。我們可以看到a類的虛函式表有兩個函式f2和f4,b類的虛函式表有三個函式f1,f2,f4;此時呼叫p->f1使用的是a類的成員函式。p->f2這個函式是虛函式,在虛函式表的第乙個函式。因為p又是b的指標,則實際呼叫的是b::f1()

C 實現多型的乙個例子

include using namespace std class animal class dog public animal int main 定義了乙個animal類,派生類dog,如果不使用指標或引用,baddog的型別永遠是animal型別,而不會是別的型別。animal baddog d...

乙個例子理解C 位移

來自 很多人覺得位移這東西很複雜,二進位制一堆0 1看不懂。其實很簡單。位移理解可能簡單一些 其實位移就是資料轉換成二進位制的左右移動 右移左補0,左移右補0,後面多出來的部分去掉。用乘除法去理解位移也可以 左位移 相當於乘 左移1位相當於乘2,左移2位相當於乘4,左移3位相當於乘8,左移4位相當於...

乙個例子理解C 位移

很多人提問,不知道c 位移,可能有些人在面試中也遇到過 其實很簡單。c 位移運算子 左移 右移 位移理解可能簡單一些 其實 就是資料轉換成二進位制的左右移動 右移左補0,左移右補0,後面多出來的部分去掉。用乘除法去理解位移也可以 左位移 相當於乘 左移1位相當於乘2,左移2位相當於乘4,左移3位相當...