第47課 父子間的衝突

2021-10-03 06:54:08 字數 2083 閱讀 7588

本文內容來自於對狄泰學院 唐佐林老師 c++深度解析 課程的學習總結

父子間的衝突

子類可以定義 父類中的同名成員

子類中的成員將隱藏父類 中的同名成員

父類中的同名成員依然存在於子類中

通過作用域分辨符 (::) 訪問父類中的同名成員

訪問父類中的同名成員

實驗**

#include

using

namespace std;

class

parent};

class

child

:public parent};

intmain()

執行結果

實驗結果:父類和子類都有成員變數 m_i時,c.m_i 呼叫的是子類的 m_i 成員變數。

若我們想要呼叫父類的 m_i 變數,更改**如下:

執行結果

再論過載

類中的成員函式可以進行過載

1.過載函式的本質為多個不同的函式

2.函式名 和 引數列表 是唯一的標識

3.函式過載必須發生在同乙個作用域中

實驗程式設計

編寫乙個程式來測試類之間的函式過載

#include

using

namespace std;

class

parent

void

func

(int i)

void

func

(int i,

int j)};

class

child

:public parent

void

func

(int i,

int j,

int m)};

intmain()

編譯結果

實驗結果:編譯報錯。 第48行 和 第 49行 報錯,child類中找不到匹配的 func函式。說明child類中的成員函式無法過載parent類中的成員函式,過載必須發生在同乙個作用域內。child類中的func成員函式對parent類中的func成員函式進行了同名覆蓋。

下面,我們改寫程式來顯示呼叫parent類中的func函式

編譯成功,執行結果

實驗結果說明

1.子類中的函式將 隱藏父類的同名函式

2.子類 無法過載 父類中的成員函式

3.使用作用域分辨符 訪問父類中的同名函式

4.子類可以定義父類中完全相同的成員函式

小結

子類 可以定義 父類中的同名成員

子類中的成員將隱藏父類中的同名成員

子類和父類中的函式不能構成過載關係

子類可以定義父類中完全相同的成員函式

使用作用域分辨 符訪問父類中的同名成員

第47課 父子間的衝突

1.1 子類可以定義父類中的 同名成員 1.2 子類中的成員將 隱藏 父類中的同名成員 同名覆蓋 1.3 父類中的同名成員 依然存在於子類中 1.4 通過作用域分辨符 訪問父類中的同名成員 父子間的函式過載 及同名成員變數 include include using namespace std cl...

C 父子類間的衝突(3) 多型

c 三大特性之一就是 多型 多型 咋一聽很高大上,其實是很容易理解的。我們先直白地理解 多型就是乙個事物有很多種狀態,帶入到c 中,結合之前對於重寫和過載的理解,我們是不是有理由懷疑函式過載就是c 中的一種多型?include stdio.h class parent class child pub...

父子的衝突

子類可以定義父類中的同名成員 子類中的成員將隱藏父類中的同名成員 父類中的同名成員依然存在於子類中 通過作用域分辨符 訪問父類中的同名成員 child c c.mi 100 子類中的mi c.parent mi 1000 父類中的mi 父子間的衝突.cpp 此檔案包含 main 函式。程式執行將在此...