日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

@override报错_C++ 多态性:C++11:override 与 final(学习笔记:第8章 09)

發布時間:2024/1/23 c/c++ 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 @override报错_C++ 多态性:C++11:override 与 final(学习笔记:第8章 09) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

C++11:override 與 final[1]

override

  • 多態行為的基礎:基類聲明虛函數,繼承類聲明一個函數覆蓋該虛函數
  • 覆蓋要求: 函數簽名(signature)完全一致
  • 函數簽名包括:函數名 參數列表 const

下列程序就僅僅因為疏忽漏寫了const,導致多態行為沒有如期進行:

源代碼:

#include

程序運行結果:

顯式函數覆蓋

  • C++11 引入顯式函數覆蓋,在編譯期而非運行期捕獲此類錯誤。
  • 在虛函數顯式重載中運用,編譯器會檢查基類是否存在一虛擬函數,與派生類中帶有聲明override的虛擬函數,有相同的函數簽名(signature);若不存在,則會回報錯誤。

 修改上例,發現添加override,會在編譯階段報錯,方便查找錯誤地方。

在編譯階段發現錯誤后,對程序進行修改:

#include

程序運行結果:

final

  • C++11提供的final,用來避免類被繼承,或是基類的函數被改寫
  • 例:
struct 注意:在Visual Stuidio和C++11標準中,可以將override與final用作變量名和函數名,它們不是語言本身的關鍵字,但不建議這樣使用。

參考

  • ^http://www.xuetangx.com/courses/course-v1:TsinghuaX+00740043_2x_2015_T2+sp/courseware/93f0d3a029d84059a84d02745a1e2bfd/5bf2454cc05d46f0b3314c65c6db5f89/
  • 總結

    以上是生活随笔為你收集整理的@override报错_C++ 多态性:C++11:override 与 final(学习笔记:第8章 09)的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。