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

歡迎訪問 生活随笔!

生活随笔

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

c/c++

c++中override的应用

發布時間:2025/3/15 c/c++ 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 c++中override的应用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?override是C++11中的一個繼承控制保留字,放在派生類成員函數參數列表后面,用來修飾函數。派生類中被override修飾的函數,在父類中有一個與之對應(形參、函數名、返回值都一致)的虛函數,override表示要重寫父類的虛函數,一旦函數后面加了override,編譯器就會檢查父類中是否有和子類中簽名匹配的函數,如果沒有編譯器會報錯。

示例代碼:

#include "stdafx.h"
#include <iostream>
using namespace std;

class Parent?
{
public:
virtual void Func();
void Func_B();
virtual void Func_C() final{ }
};

void Parent::Func()
{
cout<<"call the function of Parent"<<endl;
}

class Child ?: public Parent?
{
public:
void Func() override;//基類聲明的虛函數,在派生類中也是虛函數,即使不再使用virtual關鍵字

/*************************************************************************
void Func_A() override;
父類中沒有此方法,添加override編譯會報如下錯錯誤:
error C3668: “Child::Func_A”: 包含重寫說明符“override”的方法沒有重寫任何基類方法
*************************************************************************/

/*************************************************************************
void Func_B() override { }
Func_B在父類中不是虛函數,添加override編譯會報如下錯錯誤:
error C3668: “Child::Func_B”: 包含重寫說明符“override”的方法沒有重寫任何基類方法
*************************************************************************/

/*
void Func_C() override { }
Func_C在父類中被final修飾,禁止在派生類中被重寫
error: Func_C在基類中聲明禁止重寫?
*/

};

void Child::Func()
{
cout<<"implement the function of Parent"<<endl;
}

int _tmain(int argc, _TCHAR* argv[])
{
Parent objParent;
Child objChild;
return 0;
}

總結

以上是生活随笔為你收集整理的c++中override的应用的全部內容,希望文章能夠幫你解決所遇到的問題。

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