為什麼需要虛函式
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...