動態聯編

動態聯編又稱動態關聯
定義:
編譯程式在編譯階段並不能確切知道將要調用的函式,只有在程式運行時才能確定將要調用的函式,為此要確切知道該調用的函式,要求聯編工作要在程式運行時進行,這種在程式運行時進行聯編工作被稱為動態聯編。
動態聯編必須包括以下方面:
(1)成員函式必須聲明為virtual
(2)如果基類中聲明了為虛函式,則派生類中不必再聲明。
調用方式:
通過對象的指針或引用調用成員函式;或通過成員函式調用,反之就無法實現動態聯編。
例如:
#include <iostream>#include <string>using namespace std;class CBuilding{    //定義建築類    string name; //定義名稱public:    void set(string strName); //修改名稱    virtual void display() //顯示信息,這裡是內聯函式,而且聲明為虛函式    {        cout << "建築是" << name << "\n";    }};//建築類定義完畢void CBuilding::set(string strName){    //修改名稱方法的實現    name = strName;}class CBridge : public CBuilding{    //通過繼承來定義橋類    float length; //定義長度public:    void setLength(float l = 0.0){ length = l; } //設定長度    void display()    {        CBuilding::display(); //調用基類方法顯示名稱        cout << "其長度是" << length << "米。\n"; //顯示長度信息    }};//橋類定義完畢void main(){    CBuilding building; //創建建築對象    CBridge bridge; //創建橋對象    building.set("中國古代建築"); //設定名稱    building.display(); //顯示信息    bridge.set("中國趙州橋"); //設定橋的名稱    bridge.setLength(static_cast <float>(60.40)); //修改橋的長度    bridge.display(); //顯示橋的信息    return;}

相關詞條

熱門詞條

聯絡我們