C++11新特性 8.final關鍵字、override關鍵字

一.final

用法:

1.修飾函數

只能修飾虛函數,阻止子類重寫這個函數,final關鍵字寫在函數名的后面

即該虛函數不可以再被重寫。

注意:一般不會在基類中使用,不然沒有意義,因為只能修飾虛函數。

2.修飾類

表示該不能被繼承,即無派生類。

使用示例:

#include <iostream>
using namespace std;class Base
{
public:virtual void test(){cout << "base class" <<endl;}
};class Child:public Base
{
public:void test() final //修飾虛函數{cout << "Chile class" <<endl;}
};class GrandChild final : public Child{ //修飾類
public:void test1(){}
};//錯誤,不能被繼承
// class GGChild : public GrandChild
// {// }

二.override

用法:

重寫,確保再派生類中聲明的重寫函數與基類的虛函數有相同的簽名。(防止手誤)

用于多態:

多態特征:

1.有繼承關系

2.重寫父類虛函數

3.父類指針指向子類對象

使用示例:


#include <iostream>
using namespace std;class Base
{
public:virtual void test(){cout << "base class" <<endl;}
};class Child:public Base
{
public:void test()  {cout << "Chile class" <<endl;}
};class GrandChild  : public Child{ 
public:void test() override //確保再派生類中聲明的重寫函數與基類的虛函數有相同的簽名。{cout << "GrandChild class" <<endl;}
};int main()
{GrandChild Gd;Base* ptr = new Child();Base* ptr1 = &Gd;ptr->test();ptr1->test();Gd.test();return 0;
}

?

三.重寫override和重載overload的區別

1.作用域不同

重寫發生在不同的類(基類和子類)之間。

重載發生在同一個作用域內。

2.判斷依據不同

重寫依據函數簽名是否相同以及基類函數是否為虛函數。

重載依據參數列表是否不同。

3.目的不同

重寫的目的是實現運行時多態,讓基類指針或引用能夠根據實際指向的對象類型調用相應的函數。

重載的目的是為了方便用戶使用,通過相同的函數名處理不同類型的數據,提高代碼的可讀性和易用性。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/72822.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/72822.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/72822.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Python實現網絡通信:Socket模塊與TCP/IP協議全解析

Langchain系列文章目錄 01-玩轉LangChain&#xff1a;從模型調用到Prompt模板與輸出解析的完整指南 02-玩轉 LangChain Memory 模塊&#xff1a;四種記憶類型詳解及應用場景全覆蓋 03-全面掌握 LangChain&#xff1a;從核心鏈條構建到動態任務分配的實戰指南 04-玩轉 LangChai…

click house擴容方案

《ClickHouse擴容方案解析》 當我們談論數據庫的時候&#xff0c;尤其是像ClickHouse這樣專為處理大規模數據分析而設計的列式存儲數據庫時&#xff0c;擴容是一個不可避免的話題。隨著數據量的增長和查詢復雜度的提升&#xff0c;原有的硬件資源可能不足以支撐高效的查詢響應…

【AGI】智譜開源2025:一場AI技術民主化的革命正在到來

智譜開源2025&#xff1a;一場AI技術民主化的革命正在到來 引言&#xff1a;開源&#xff0c;一場技術平權的革命一、CogView4&#xff1a;中文AI生成的里程碑1. 破解漢字生成的“AI魔咒”2. 開源協議與生態賦能 二、AutoGLM&#xff1a;人機交互的范式躍遷1. 自然語言驅動的跨…

java8中young gc的垃圾回收器選型,您了解嘛

在 Java 8 的 Young GC&#xff08;新生代垃圾回收&#xff09;場景中&#xff0c;對于 ToC的場景&#xff0c;即需要盡可能減少垃圾回收停頓時間以滿足業務響應要求的場景&#xff0c;以下幾種收集器各有特點&#xff0c;通常 Parnew和 G1 young表現較為出色&#xff0c;下面詳…

【數學 矩陣快速冪】P7108 移花接木|普及+

本文涉及知識點 數學 移花接木 題目背景 遙遠的圣地生長著一棵不為人知的靈樹&#xff0c;或有萬山之高。 但有一日&#xff0c;藏匿于根系的腐朽力量爆發&#xff0c;靈樹已無法支撐往日屹立沖天的高度。 題目描述 靈樹最初的形態可以看作一棵高度為 10 10 10 10 {10}…

2025-03-09 學習記錄--C/C++-PTA 習題10-7 十進制轉換二進制

合抱之木&#xff0c;生于毫末&#xff1b;九層之臺&#xff0c;起于累土&#xff1b;千里之行&#xff0c;始于足下。&#x1f4aa;&#x1f3fb; 一、題目描述 ?? 裁判測試程序樣例&#xff1a; #include <stdio.h>void dectobin( int n );int main() {int n;scanf(…

前端 | CORS 跨域問題解決

問題&#xff1a;Access to fetch at http://localhost:3000/save from origin http://localhost:5174 has been blocked by CORS policy: Response to preflight request doesnt pass access control check: No Access-Control-Allow-Origin header is present on the request…

fastapi房產銷售系統

說明&#xff1a; 我希望用fastapi寫幾個接口&#xff0c;查詢房產交易系統的幾條數據&#xff0c;然后在postman里面測試 查詢客戶所有預約記錄&#xff08;含房源信息&#xff09;需要對應銷售經理查詢客戶所有訂單&#xff08;含房源信息&#xff09;統計銷售經理名下所有房…

導軌式ARM工業控制器:組態軟件平臺的“神經中樞”

工業自動化領域&#xff0c;組態軟件平臺扮演著至關重要的角色。它不僅是工業控制系統的“大腦”&#xff0c;更是實現智能化、高效化生產的關鍵工具。而作為組態軟件平臺的硬件支撐&#xff0c;導軌式ARM工控機&#xff08;以下簡稱“工控機”&#xff09;憑借其緊湊的設計、強…

每日一題——矩陣置零問題的原地算法

矩陣置零問題的原地算法 問題描述示例約束條件進階要求 問題分析難點分析解題思路 代碼實現代碼說明 測試用例測試用例 1測試用例 2測試用例 3 總結 問題描述 給定一個 m x n 的矩陣&#xff0c;如果矩陣中的某個元素為 0&#xff0c;則需要將其所在的行和列的所有元素都置為 …

Springboot中的@Value注解:用法與潛在問題探索

在Spring Boot開發中&#xff0c;有個非常實用的注解&#xff0c;那就是Value&#xff01;它可以幫助我們輕松地從配置文件中讀取屬性值。想象一下&#xff0c;在應用程序中管理各種配置&#xff0c;比如數據庫連接信息、服務URL或者API密鑰等&#xff0c;使用Value是多么方便呀…

C++后端服務器開發技術棧有哪些?有哪些資源或開源庫拿來用?

一、 C后臺服務器開發是一個涉及多方面技術選擇的復雜領域&#xff0c;特別是在高性能、高并發的場景下。以下是C后臺服務器開發的一種常見技術路線&#xff0c;涵蓋了從基礎到高級的技術棧。 1. 基礎技術棧 C標準庫 C11/C14/C17/C20&#xff1a;使用現代C特性&#xff0c;如…

25年攜程校招社招求職能力北森測評材料計算部分:備考要點與誤區解析

在求職過程中&#xff0c;能力測評是篩選候選人的重要環節之一。對于攜程這樣的知名企業&#xff0c;其能力測評中的材料計算部分尤為關鍵。許多求職者在備考時容易陷入誤區&#xff0c;導致在考試中表現不佳。本文將深入解析材料計算部分的實際考察方向&#xff0c;并提供針對…

golang進階知識專項-理解值傳遞

在 Go 語言中&#xff0c;所有函數的參數傳遞都是值傳遞&#xff08;Pass by Value&#xff09;。當你將一個變量作為參數傳遞給函數時&#xff0c;實際上傳遞的是該變量的副本&#xff0c;而不是變量本身。理解這一點對于避免常見的編程錯誤至關重要。根據不同的類型&#xff…

RuoYi框架添加自己的模塊(學生管理系統CRUD)

RuoYi框架添加自己的模塊&#xff08;學生管理系統&#xff09; 框架順利運行 首先肯定要順利運行框架了&#xff0c;這個我不多說了 設計數據庫表 在ry數據庫中添加表tb_student 表字段如圖所示 如圖所示 注意id字段是自增的 注釋部分是后面成功后前端要展示的部分 導入…

中級網絡工程師面試題參考示例(1)

一、基礎理論 1. OSI七層模型與TCP/IP四層模型的區別是什么&#xff1f;請舉例說明第三層&#xff08;網絡層&#xff09;和第四層&#xff08;傳輸層&#xff09;的核心協議。 參考答案&#xff1a; OSI七層模型分為物理層、數據鏈路層、網絡層、傳輸層、會話層、表示層、應用…

RHCE9.0版本筆記5:防火墻的本地/遠程登錄方式

一、防火墻登錄方式全景圖 華為防火墻支持多種管理訪問方式&#xff0c;根據安全等級和場景需求可分為&#xff1a; graph LR A[管理方式] --> B[本地登錄] A --> C[遠程登錄] B --> B1(Console) B --> B2(Web) C --> C1(SSH) C --> C2(Telnet) C --> C…

2025最新群智能優化算法:山羊優化算法(Goat Optimization Algorithm, GOA)求解23個經典函數測試集,MATLAB

一、山羊優化算法 山羊優化算法&#xff08;Goat Optimization Algorithm, GOA&#xff09;是2025年提出的一種新型生物啟發式元啟發式算法&#xff0c;靈感來源于山羊在惡劣和資源有限環境中的適應性行為。該算法旨在通過模擬山羊的覓食策略、移動模式和躲避寄生蟲的能力&…

博弈論算法

一、減法游戲 初始有一個數 n。 兩個玩家輪流操作&#xff0c;每次可以減去 1 到 9 之間的任意整數。 將數減到 0 的玩家獲勝。 可以發現規律&#xff1a; 減法游戲只需要判斷當前數取模是否為0&#xff0c;即可快速判斷勝負。 例題&#xff1a; Leetcode 292. Nim 游戲 …

Excel·VBA江西省預算一體化工資表一鍵處理

每月制作工資表導出為Excel后都需要調整格式&#xff0c;刪除0數據的列、對工資表項目進行排序、打印設置等等&#xff0c;有些單位還分有“行政”、“事業”2個工資表就需要操作2次。顯然&#xff0c;這種重復操作的問題&#xff0c;可以使用VBA代碼解決 目錄 代碼使用說明1&a…