c++ 重载 覆盖 隐藏的区别和执行方式
生活随笔
收集整理的這篇文章主要介紹了
c++ 重载 覆盖 隐藏的区别和执行方式
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
成員函數被重載的特征
(1)相同的范圍(在同一個類中);
(2)函數名字相同;
(3)參數不同;
(4)virtual 關鍵字可有可無。
覆蓋是指派生類函數覆蓋基類函數,特征是
(1)不同的范圍(分別位于派生類與基類);
(2)函數名字相同;
(3)參數相同;
(4)基類函數必須有virtual 關鍵字。
“隱藏”是指派生類的函數屏蔽了與其同名的基類函數,規則如下
(1)如果派生類的函數與基類的函數同名,但是參數不同。此時,不論有無virtual關鍵字,基類的函數將被隱藏(注意別與重載混淆)。
(2)如果派生類的函數與基類的函數同名,并且參數也相同,但是基類函數沒有virtual 關鍵字。此時,基類的函數被隱藏(注意別與覆蓋混淆)
3種情況怎么執行: 1。重載:看參數 2。隱藏:用什么就調用什么 3。覆蓋:調用派生類
(1)相同的范圍(在同一個類中);
(2)函數名字相同;
(3)參數不同;
(4)virtual 關鍵字可有可無。
覆蓋是指派生類函數覆蓋基類函數,特征是
(1)不同的范圍(分別位于派生類與基類);
(2)函數名字相同;
(3)參數相同;
(4)基類函數必須有virtual 關鍵字。
“隱藏”是指派生類的函數屏蔽了與其同名的基類函數,規則如下
(1)如果派生類的函數與基類的函數同名,但是參數不同。此時,不論有無virtual關鍵字,基類的函數將被隱藏(注意別與重載混淆)。
(2)如果派生類的函數與基類的函數同名,并且參數也相同,但是基類函數沒有virtual 關鍵字。此時,基類的函數被隱藏(注意別與覆蓋混淆)
3種情況怎么執行: 1。重載:看參數 2。隱藏:用什么就調用什么 3。覆蓋:調用派生類
總結
以上是生活随笔為你收集整理的c++ 重载 覆盖 隐藏的区别和执行方式的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: MFC中OnDraw与OnPaint的区
- 下一篇: javascript中alert函数的替