C 三大易混概念之覆蓋

2021-10-06 21:20:59 字數 1259 閱讀 2356

覆蓋體現在c++類中,我們平時叫做重寫,比如重寫某某某的虛函式。

虛函式:父類中加上了virtual關鍵字的成員方法(成員函式)叫做虛函式。

嗯,此文章針對入門級學習者,大牛請繞道。

一、覆蓋覆蓋的前提條件:被重寫的(父類函式)必須是虛函式。

覆蓋:當子類中定義了乙個與父類完全一樣的虛函式時,就叫做子類重寫了父類的虛函式,這就叫覆蓋。

虛函式的兩種體現方式:

二、兩種重寫下面**實現以下:

#include

#include

//string標頭檔案

using

namespace std;

class

cain

//虛函式

protected

:int age;};

class

beck

:public cain

//虛函式

protected

:int age;};

void

fun(cain* p,

int age)

void

fun(cain& c,

int age)

intmain()

執行結果(驗證是否正確):

ps:相機有點問題,因為公司電腦加密,有些東西不能截圖,只能手機拍照了,見諒!

看來**確實沒有問題。

ps: 子類重寫父類虛函式時,virtual關鍵字其實可寫可不寫,寫了更好,不寫也沒錯,不過建議寫著,習慣好點,別人閱讀**也覺得舒服一些。

#include

#include

//string標頭檔案

using

namespace std;

class

cain

//虛函式

protected

:int age;};

class

beck

:public cain

//虛函式

protected

:int age;};

void

fun(cain* p,

int age)

void

fun(cain& c,

int age)

intmain()

C 三大易混概念之隱藏

隱藏 字面意思,把人或者物藏起來,不讓人發現,就是隱藏。程式中的隱藏也差不多,只不過不同的是,子類重定義父類。父類中的還是存在的。下面看乙個例子 初始化列表 預設傳值,這個值在你沒有呼叫有參建構函式時,會自動給程式賦值。初始化列表好處是提高了效率。因為初始化列表在程式啟動就開始初始化。初始化列表的適...

C 的易混概念

靜態多型 過載 根據函式的引數個數和型別區分呼叫的函式。早繫結 動態多型 根據所指物件的虛函式表決定呼叫的函式。晚繫結 函式的覆蓋 過載 隱藏 成員函式被過載的特徵 1 相同的範圍 在同乙個類中 2 函式名字相同 3 引數不同 4 virtual 關鍵字可有可無 覆蓋 派生類函式覆蓋基類函式,特徵是...

c 三大特性之 繼承

繼承 乙個非常自然的概念,現實中的很多事情都是具有繼承性的。類似於自己繼承父母的特性,這也是繼承的特性 而繼承的上層稱為基類,下一層就叫做派生類。格式 class 派生類 繼承方式 基類 繼承 例如 include using namespace std class person class stu...