-
多態中存在的問題:內存泄露 例如圖中,多定義了一個指針,在多態中通過父類指針指向子類對象,并且通過父類指針去操作子類對象中的虛函數時,當使用delete去銷毀對象,并想借助父類的指針銷毀子類對象會出現問題(只會執行父類的析構函數),執行不到Circle的析構函數 Shape *shape = new Circle(3,5,4.0); shape->calcArea(); delete shape1; //只會執行父類的析構函數,執行不到Circle的析構函數 shape1 = NULL 必須引入虛析構函數,同樣的使用virtual修飾父類的析構函數(子類的析構函數可寫可不寫virtual關鍵字,系統會自動填上,推薦寫上)查看全部
-
動態多態(晚綁定):必須以封裝和繼承為基礎 例如:父類Shape,子類Circle和Rect都有calcArea()成員函數,若想如左圖那樣讓shape1和shape2對象進行面積計算,則必須將父類的calcArea()成員函數加上virtual關鍵字使其成為虛函數,系統會自動為子類的calcArea()成員函數加上virtual關鍵字(推薦在子類定義中也加上virtual關鍵字)查看全部
-
靜態多態(早綁定):程序在編譯階段,就已經確定下來要使用哪個函數查看全部
-
面向對象三大特征查看全部
-
我被異常處理了 難道所有代碼最好都弄成這樣233 比如分配內存弄到NULL時一個if就OK了么查看全部
-
實現動態多態(早綁定)查看全部
-
233沒聽懂 強制類型轉換和課里面講的那個有什么區別額查看全部
-
if(typeid(*指針對象)==typeid(轉換對象)) { ....*轉換對象=dynamic_cast<剛剛的轉換對象*>(剛剛的指針對象); 轉換對象->對象();//打印 }查看全部
-
RTTI實例查看全部
-
類中僅有純虛函數的類,無數據成員和其他函數查看全部
-
抽象類無法實現實例化查看全部
-
含有純虛函數的類叫做抽象類查看全部
-
純虛函數=0查看全部
-
233好吧 我也是醉了查看全部
-
江河湖?;谢秀便被谢秀便被谢秀便苯雍倓?vvv 哥哥哥哥查看全部
舉報
0/150
提交
取消