C 中派生類成員變數和基類成員變數同名問題

2021-08-18 12:58:25 字數 636 閱讀 7039

1.當派生類存在與基類同名的成員變數時候,派生類的成員會隱藏基類成員,但派生類中存在基類成員的拷貝,要顯示的訪問base::date member

#include 

using

namespace

std;

class base

};class derive : public base

};int main()

2.當存在虛函式的時候,如下**:

#include 

using

namespace

std;

class a

virtual

void print()

};class b : public a

};class c : public a

virtual

void print()

};int main()

b繼承了a中的虛函式,但本身沒有,則print函式中的變數作用於僅限於基類a,故列印出的是1;

而c繼承a,但自己重寫了虛函式print,當呼叫print的時候,a使用的是c中的,c中的a將a中的a隱藏了。

參考:

C 中派生類基類成員變數成員函式的訪問

首先搞明白一點 類裡面對成員的訪問處理屬於 內部訪問 通過類的例項化物件在訪問其成員屬於 外部訪問 派生類對基類成員的訪問主要有兩種,一種是派生類的新增成員對繼承的基類成員的訪問 內部 另一種是派生類的物件對繼承的基類成員的訪問 外部 1 public型別 可以在外部訪問,也可以在子類中訪問 dem...

C 中派生類使用基類成員的問題

在c 中,派生類在定義建構函式時,會呼叫基類建構函式首先完成基類部分的構造 class derive public base 若若派生類定義了乙個基類已有的資料成員,則會覆蓋掉基類。在這個構造過程中,之類自身的成員構造可以使用this指標,this name name 也可以直接使用派生類自己已經定...

C 在派生類中呼叫基類成員

一 在派生類中呼叫基類成員 在c 的派生類中,我們可以使用base關鍵字呼叫基類中的公有或者受保護成員。這些成員只能是建構函式 例項方法或者例項屬性。base關鍵字呼叫基類成員的語法格式如下 base identifier或 base expression list 注意 base關鍵字不能用在派生...