C 繼承與派生訪問許可權

2021-08-14 06:20:01 字數 1043 閱讀 8779

觀察下邊一段**:

class a

int i;

protected:

void f2(){}

int j;

private:

int k;

};class b:public a

protected:

int m;

private:

int n;

};class c:public b

private:

int p;

};

全是公用繼承,思考這樣幾個問題:

1.在main函式中能否用b1.i,b1.j和b1.k引用派生類b物件b1中基類a的成員

2.派生類b中成員函式能否呼叫基類中的成員函式f1和f2.

3.派生類b中成員函式能否呼叫基類中的資料成員i,j,k.

4.能否在main函式中用c1.i,c1.j,c1.k,c1.m.cl.n,c1.p引用基類a的成員i,j,k,派生類b的成員m,n以及派生類c的成員p

5.能否在main函式中用c1.f1(),c1.f2(),c1.f3()和c1.f4()呼叫f1,f2,f3,f4c成員函式.

6.派生類c的成員函式f4能否呼叫基類a中的成員函式f1,f2和派生類中的成員函式f3.

答案在**中,思考幾分鐘再看.

#includeusing namespace std;

class a //空函式得寫括號

int i;

protected:

void f2(){}//空函式得寫括號

int j;

private:

int k;

};class b:public a

protected:

int m;

private:

int n;

};class c:public b

private:

int p;

};int main()

C 繼承與派生

派生新類 吸收已有類的成員 調整已有類成員和新增新的成員 class 派生類名 繼承方式 基類名1,繼承方式 基類名2,派生類成員宣告 繼承方式有 public protected private 預設 公有繼承 基類的公有和保護乘員的訪問屬性在派生類中不變,基類的私有成員不能直接訪問 型別相容規則...

c 繼承與派生

繼承 與派生 一 派生方式的不同的表現 1 派生類在類內成員對基類成員 的訪問許可權 2 派生類的物件對基類成員的訪問許可權。二 公有繼承 1 基類protected和public的成員在派生類中訪問屬性保持不變 2 基類的private成員在派生類中不可訪問。3 派生類的成員 即派生類內 可以直接...

c 繼承與派生

一 基本概念 1 類的繼承,是新的類從已有類那裡得到已有的特性。或從已有類產生新類的過程就是類的派生。原有的類稱為基類或父類,產生的新類稱為派生類或子類。2 派生類的宣告 class 派生類名 繼承方式 基類名1,繼承方式 基類名2,繼承方式 基類名n 3 乙個派生類可以同時有多個基類,這種情況稱為...