2014年4月6日 星期日

C/C++ Virtual 虛擬函數

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");
}

沒有留言:

張貼留言