#include #include using namespace std;
//定義兩個函式指標型別
typedef void(*pfunc)(void);
typedef int(*psum)(int,int);
//定義測試基類
class a
private:
//定義私有的虛函式sum(用於測試)
virtual int sum(int x,int b)
};//定義測試子類
class b :public a
//定義虛函式tool用於測試
virtual void tool()
};int main()
{ //使用子類構建指向子類的物件指標
a *a = new b;
//獲取虛函式表中的第乙個函式指標
pfunc func = (pfunc)*(int *)*(int *)a;
//輸出
func(); //子類中的func
//通過虛函式表訪問基類中的私有虛函式(也適用於:子類構造的物件通過虛函式表訪問基類的私有函式)
//獲取虛函式表中的第二個函式指標 //基類中的私有函式(sum函式)
psum sum = (psum)*((int *)*(int *)a+1);
int x = 10;int b = 2000;
//傳遞引數,並輸出, //注意能夠輸出測試字串,但是傳遞的引數被迫壞掉,無法正常運算
物件導向 多型(虛函式)
虛函式 用關鍵字virtual修飾的 類的成員函式 虛函式定義 語法形式 class x虛函式的意義 即虛函式的虛特徵 基類指標 或引用 指向 派生類的物件時,通過該指標 或引用 訪問派生類中的虛函式時,將呼叫該指標 或引用 實際所指物件的成員函式!指標和引用給基類的是派生類的位址 例子 class...
多型性與虛函式 物件導向程式設計
多型性 向不同的物件傳送同乙個訊息,不同的物件在接收時會產生不同 的行為。靜態多型性 由函式中在和運算子過載形成。動態多型性 通過虛函式實現。先建立乙個point類,包含資料成員x,y 座標點 以它為基類,派生出乙個circle 圓 類,增加資料成員r 半徑 再以circle類為直接基類,派生出乙個...
物件導向特性 多型
1 抽象類和方法 只在父類中宣告,在子類中實現,用abstract宣告。作用是給子類作規範。規則 抽象類不能例項化,只能被繼承 抽象方法必須被子類方法重寫。建立 abstract class computer 抽象類裡面的抽象方法必須在子類裡面重寫,不然會報錯。abstract class comp...