Cpp 11 / override 和 final 区别
生活随笔
收集整理的這篇文章主要介紹了
Cpp 11 / override 和 final 区别
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一、override
1、誕生原因
C++ 中,有時繼承關系較復雜時,基類和派生類各自的虛函數較多,導致開發人員傻傻地分不清哪些是重寫了基類的虛函數,哪些是本派生類特有的虛函數。為了解決上述問題,添加了 virtual 描述符 override。
2、作用
該標識符表示開發人員與編譯器產生約定:該標識符描述的函數必須是基類的虛函數,即:同名又同參,否則編譯器無法通過。有了該關鍵字,派生類就可以分清哪些虛函數是重寫了基類的虛函數,哪些虛函數是自己新建立的。
3、注意
該標識符不是關鍵字。
二、final
1、誕生原因
在 C++ 中,有時有如下需求:
-
當前的類不要被其他開發人員繼承;
-
基類的虛函數在本類重寫完之后止,不想被子類再重寫。
2、作用
為了達到上述目的,C++ 11引入標識符 final,其作用如下:
-
放在類定義的后面,表示當前類不能被繼承;
-
放在虛函數的后面,表示子類不能重寫該虛函數。
3、注意
該標識符不是關鍵字。
?
(SAW:Game Over!)
總結
以上是生活随笔為你收集整理的Cpp 11 / override 和 final 区别的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C/Cpp / 设计模式 / 模板模式
- 下一篇: Cpp / shared_ptr