資源描述:
《C++ 派生類與繼承》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。
1、第4章派生類與繼承繼承在已有類的基礎(chǔ)上建立一個新類的過程稱為繼承被繼承的已有類稱為基類(父類)派生在已有類的基礎(chǔ)上新增自己的特性(屬性與行為)而產(chǎn)生新類的過程稱為派生派生出的新類稱為派生類(子類)繼承與派生的目的:實(shí)現(xiàn)代碼的重用與擴(kuò)充4.1派生類的概念4.1.1繼承單繼承派生類只從一個基類派生多重繼承一個派生類有兩個或多個基類多級派生(多層派生)派生類又作為基類,繼續(xù)派生新的類4.1.2派生類的聲明class派生類名:[繼承方式]基類名{//派生類新增的數(shù)據(jù)成員和成員函數(shù)};繼承方式:規(guī)定了如何訪問
2、從基類繼承的成員,可以是private,protected,public三種方式.//定義一個基類classPerson{public:voidprint(){//……}protected:stringname;intage;charsex;};//定義一個派生類classEmployee:publicPerson{public:voidprint1(){……….}private:stringdepartment;floatsalary;};由類Person繼承出類Employee有三種繼承方式(1
3、)公有繼承classemployee:publicperson{//…};(2)私有繼承classemployee:privateperson{//…};(3)保護(hù)繼承classemployee:protectedperson{//…};4.1.3派生類的構(gòu)成派生類除了可以從基類繼承成員外,還可以增加自己的數(shù)據(jù)成員和成員函數(shù).這些新增的成員正是派生類不同于基類的關(guān)鍵所在,是派生類對基類的發(fā)展.Person類stringname;intage;charsex;voidprint();Employee類
4、stringname;intage;charsex;voidprint()繼承新增(發(fā)展)stringdepartment;floatsalary;voidprint1();繼承與派生的目的:實(shí)現(xiàn)代碼的重用與擴(kuò)充構(gòu)造一個派生類一般過程:(1)派生類從基類接收成員C++繼承中,派生類把基類的全部成員(構(gòu)造函數(shù)與析構(gòu)函數(shù)除外)接收過來.(2)調(diào)整從基類接收來的成員(3)在派生類中增加新成員.4.1.4基類成員在派生類中的訪問屬性派生類繼承基類中全體成員(除了構(gòu)造函數(shù)與析構(gòu)函數(shù)).這些成員的訪問屬性在派生
5、程中可以調(diào)整.從基類繼承來的成員在派生類的訪問屬性是由繼承方式控制.class派生類名:[繼承方式]基類名{//…….}繼承方式為public,protected,private.不同的繼承方式,導(dǎo)致不同訪問屬性的基類成員在派生類的訪問屬性有所不同.用公有繼承方式建立的派生類稱為公有派生類用私有繼承方式建立的派生類稱為私有派生類用保護(hù)繼承方式建立的派生類稱為保護(hù)派生類基類中的成員在公有派生類中的訪問屬性在私有派生類中的訪問屬性在保護(hù)派生類中的訪問屬性私有成員公有成員保護(hù)成員不可直接訪問公有保護(hù)不可直
6、接訪問私有私有不可直接訪問保護(hù)保護(hù)表:基類成員在派生類中的訪問屬性4.1.5派生類對基類成員的訪問規(guī)則類的繼承方式有public(公有繼承)protected(保護(hù)繼承)private(私有繼承)不同的繼承方式導(dǎo)致原來具有不同訪問屬性的基類成員在派生類中的訪問屬性不同.派生類對基類成員的訪問形式有以下兩種:(1)內(nèi)部訪問,派生類的新增成員函數(shù)對基類繼承的成員的訪問(2)對象訪問,在派生類的外部,以派生類的對象對基類繼承來的成員的訪問.1.私有繼承的訪問規(guī)則基類成員private成員public成員p
7、rotected成員內(nèi)部訪問對象訪問不可訪問不可訪問可訪問不可訪問可訪問不可訪問基類中的private成員,既不能被派生類的對象訪問,也不能被派生類的新增成員函數(shù)訪問(內(nèi)部訪問)..classBase{public:voidsetx(intn){x=n;}voidshowx(){cout<8、t<