NDK13 C 基礎 虛函式

2021-10-05 20:36:24 字數 970 閱讀 7123

ndk開發彙總

增加程式的擴充套件性

class parent 

};class child :public parent

};parent *c = new child();

// 編譯期間 確定c 為 parent 呼叫parent的test方法

c->test();

//修改parent為virtual 虛函式 動態鏈結,告訴編譯器不要靜態鏈結到該函式

virtual void test()

//動態多型 呼叫child的test方法

c->test();

建構函式任何時候都不可以宣告為虛函式

析構函式一般都是虛函式,釋放先執行子類再執行父類

則在virtualfun函式中通過父類指標操作子類物件的成員函式的時候是沒有問題的,可是在銷毀物件記憶體的時候則只是執行了父類的析構函式,子類的析構函式卻沒有執行,這會導致記憶體洩漏

void zipfun(

)

呼叫後列印:沒有走子類copter的析構函式

plane 無參建構函式00905a08灣流1991

copter 無參建構函式灣流1991

copter land

plane 析構函式00905a08灣流1991

解決方法將plane 和copter 的析構函式都宣告為虛函式(.h宣告中加上virtual關鍵字)

//純虛函式

virtual void test(

)= 0;

class parent ;

class child :public parent

};

C 基礎 虛函式 純虛函式 普通函式

為什麼要使用虛函式 說明 為什麼要使用純虛函式 什麼情況下使用純虛函式 滿足以上兩點,可考慮宣告為純虛函式。例1 class a 輸出結果 function in class a function in class a function in class b function in class a ...

c 基礎系列 虛函式 虛表

歡迎來到c 基礎系列的部落格 我們剛才例項化物件的時候,示例一直豬是這樣寫的 pig pig new pig 但因為其是繼承animal動物類的,所以說我們其實也可以這樣寫 animal pig new pig 這種寫法一般情況下沒有毛病,但是如果子類重寫了基類的方法時,就會出現問題 呼叫的還是基類...

C語言基礎 13 函式

在使用函式前必須定義或者宣告函式。double circle double r int main double circle double r 在呼叫函式的時候,函式大多數都有引數,主調函式和被呼叫函式之間需要傳遞資料。在定義函式時函式名後面括弧中的變數名稱為 形式引數 簡稱形參。在呼叫函式時,函式...