面向?qū)ο笾惖睦^承與派生、三種繼承方式的訪問權(quán)限

/*

**test27.cpp : Defines the entry point for the console application.

**系統(tǒng)winXP SP3 32位.

**面向?qū)ο笾惖睦^承與派生、三種繼承方式的訪問權(quán)限

*/


#include "stdafx.h"

#include "iostream.h"


class A{

public:

void fA1(){

cout<<"fA1()"<<endl;

};

void fA2(){

cout<<"fA2()"<<endl;

};

int getInt(){

return iNum;

};

A(){

iNum = 0;

};

private:

int iNum;

};


class B:public A{

public:

void fB1(){

cout<<"fB1()"<<endl;

};

void fB2(){

cout<<"fB2()"<<endl;

};

};


class C:protected A{

public:

void fC1(){

cout<<"fC1()"<<endl;

};

void fC2(){

cout<<"fC2()"<<endl;

};

};


class D:private A{

public:

void fD1(){

cout<<"fD1()"<<endl;

};

void fD2(){

cout<<"fD2()"<<endl;

};

};


int main(int argc, char* argv[])

{

B b;

C c;

D d;

b.fA1(); //fA1(),public繼承,從A那里繼承而來的成員函數(shù),可以訪問到

b.fA2(); //fA2(),public繼承,從A那里繼承而來的成員函數(shù),可以訪問到

b.fB1(); //fB1(),類自身的成員,可以訪問到

b.fB2(); //fB2(),類自身的成員,可以訪問到

//cout<<b.iNum<<endl; //私有成員,訪問不到

cout<<b.getInt()<<endl; //私有成員,通過public的成員函數(shù)可以訪問到


//c.fA1(); //protected繼承,在子類中變?yōu)榱怂接谐蓡T,從A那里繼承而來的成員函數(shù),不可以訪問到

//c.fA2(); //protected繼承,在子類中變?yōu)榱怂接谐蓡T,從A那里繼承而來的成員函數(shù),不可以訪問到

c.fC1(); //fC1(),類自身的成員,可以訪問到

c.fC2(); //fC2(),類自身的成員,可以訪問到

//cout<<c.iNum<<endl; //私有成員,訪問不到

//cout<<c.getInt()<<endl; //protected繼承私有成員,getInt()在子類中變?yōu)榱怂接谐蓡T,訪問不到


//d.fA1(); //private繼承,從A那里繼承而來的成員函數(shù),不可以訪問到

//d.fA2(); //private繼承,從A那里繼承而來的成員函數(shù),不可以訪問到

d.fD1(); //fD1(),類自身的成員,可以訪問到

d.fD2(); //fD2(),類自身的成員,可以訪問到

//cout<<c.iNum<<endl; //私有成員,訪問不到

//cout<<c.getInt()<<endl; //private繼承私有成員,訪問不到


return 0;

}


Tips1:邏輯上類B繼承類A,則B是A的一種。類的繼承分為public公有繼承、protected保護(hù)繼承、private私有繼承。子類擁有父類除了父類構(gòu)造和析構(gòu)函數(shù),所有的成員函數(shù)和成員變量,子類就是一種特殊的父類,子類對(duì)象可以當(dāng)做父類的對(duì)象使用,子類可以擁有父類沒有的方法和屬性。

Tips2:具體的繼承方式與訪問控制權(quán)限如下:(注意這里的私有成員是被包含在繼承的類中的,但是不可訪問)


Tips3:總結(jié):只能在當(dāng)前類和子類中訪問的成員設(shè)置為protected;只能在當(dāng)前類被訪問的成員設(shè)置為private;?需要被外部訪問的成員直接設(shè)置為public。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容