C/C++ Virtual 虛擬函數
Virtual是一個虛擬函數,其使用的時機在於父類別要去使用子類別的函數時
子類別去繼承了父類別,父類別當然不能去呼叫到子類別的函數,而父類別本身可以透過虛擬函數的方法去呼叫到子類別的函數。
子類別去繼承了父類別,父類別當然不能去呼叫到子類別的函數,而父類別本身可以透過虛擬函數的方法去呼叫到子類別的函數。
#include <iostream>
using namespace std;
class CA{
public :
virtual void Forward()=0;
virtual void Eat()=0;
void GoFor(){
Forward();
Eat();
}
};
class bird:public CA{
void Forward(){
cout<<"鳥在飛行,";
}
void Eat(){
cout<<"飛到水裡捕魚\n";
}
};
class dog:public CA{
void Forward(){
cout<<"狗在走路,";
}
void Eat(){
cout<<"跳上去吃到獵物\n";
}
};
void main()
{
bird b;
dog d;
b.GoFor();
d.GoFor();
system("pause");
}
沒有留言:
張貼留言