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