C 虛函式如何使用

2021-07-23 19:37:56 字數 1180 閱讀 5023

為什麼需要虛函式

maizitest13.cpp : 定義控制台應用程式的入口點。

1.**

#include "stdafx.h"

#include

using namespace std;

//基類

base定義

class base

public:

virtual void disp()

cout<

public:

void disp()//派生類

child1

中定義的

disp()

函式將base

類中定義的

disp()

函式隱藏

cout<

public:

void disp()

cout<

pb->disp();

int _tmain(int argc, _tchar* argv)

base *pbase = null,obj_base;

obj_base.disp();

pbase = &obj_base;

pbase->disp();

child1 *pchild1 = null,obj_child1;

obj_child1.disp();

pchild1 = &obj_child1;

pchild1->disp();

child2 *pchild2 = null,obj_child2;

obj_child2.disp();

pchild2 = &obj_child2;

pchild2->disp();

//使用

obj_child1

的位址為

pbase賦值

pbase = &obj_child1;

pbase->disp();

display(&obj_base);

display(&obj_child1);

display(&obj_child2);

return 0;

2.執行結果

C 虛函式的使用

這兩天看了c 虛函式的相關機制,有必要記錄下自己的心得體會。c 的虛函式機制主要依賴c 的指標和引用的靜態型別 編譯時確定的型別 和動態型別 執行時確定的型別 的不同來實現動態繫結的,也就是在執行時來確定基類指標和引用的型別,是本身基類型別還是其某個子類型別。這樣,就可以在動態時確定通過指標或者引用...

c 的虛函式使用

虛函式的使用 之前的 如下 include using namespace std class base 定義基類base void disp 定義成員函式 class base1 public base 定義公有派生類base1 void disp 定義同名函式 void main 結果如下 分析...

C 虛函式和虛析構函式的使用

main.cpp c test12 include using namespace std class a a virtual a void funa void funb virtual void funb void a funa void a funb class b public a b voi...