-
接口類:僅僅含有純虛函數(shù)的類
- 沒有數(shù)據(jù)成員,僅有純虛函數(shù)
查看全部 -
抽象類:含有純虛函數(shù)的類
//?純虛函數(shù)的寫法 virtual?double?calc()=0;?//
查看全部 -
先找到子類的析構函數(shù)
子類的析構函數(shù)執(zhí)行后,會自動執(zhí)行父類的析構函數(shù)
查看全部 -
函數(shù)的覆蓋和隱藏:
隱藏:父子類定義了同名的函數(shù)
覆蓋:子類覆蓋父類的虛函數(shù)
查看全部 -
虛函數(shù)表指針 ——> 指向一個虛函數(shù)表?
虛函數(shù)指針不同,但內(nèi)部虛函數(shù)指針一致
查看全部 -
函數(shù)的本質就是一段二進制代碼,寫在內(nèi)存當中
函數(shù)指針也是由四個基本內(nèi)存單元組成,存儲著內(nèi)存的地址,即函數(shù)的首地址
查看全部 -
virtual的限制:
不能修飾全局函數(shù) 不能修飾靜態(tài)?static?函數(shù) 不能修飾內(nèi)聯(lián)?inline?函數(shù) 不能修飾構造函數(shù)
查看全部 -
虛析構函數(shù) —— 避免造成內(nèi)存泄漏
//父類 class?Shape { ?public: ?????virtual?~Shape(); ?????Shape(); ?????virtual?double?calcArea(); } //?繼承 class?Circle?:?public?Shape { public: ????virtual?~Circle(); }
查看全部 -
//?virtual?實現(xiàn)動態(tài)繼承 class?Shape { public: ????virtual?double?calcArea();???????? } //?circle?繼承 class?Circle?:?public?Shape?//?:?關鍵字?共同定義了繼承 { public: ????virtual?double?calcArea(); } //?Rect?繼承 class?Rect?:?public?Shape { public: ????virtual?double?calcArea(); }
查看全部 -
throw錯誤編號,try{test();}catch(類型){根據(jù)編號處理}
查看全部 -
常見異常:數(shù)組下標越界,除數(shù)為0,內(nèi)存不足。try? ?catch throw
查看全部 -
typeid返回的是type——info對象的引用。基類必須含有虛函數(shù)。只能獲取對象的實際類型
查看全部 -
RTTI運行時內(nèi)存識別。當函數(shù)輸入父類指針,根據(jù)實際傳入子類指針的類型不同做不同的操作、函數(shù)。typeid(*obj).name().typeid(*obj)==typeid(Bird).
Bird *bird =dynamic_cast<Bird *>(obj)
dynamic_cast只能用于指針和引用的轉化
查看全部 -
用能飛和飛行比賽理解接口類
查看全部 -
僅僅含有純虛函數(shù)的類叫接口類
查看全部
舉報