資源描述:
《繼承與派生ppt課件 (2).ppt》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫(kù)。
1、第七章繼承與派生C++語(yǔ)言程序設(shè)計(jì)1本章主要內(nèi)容類的繼承類成員的訪問(wèn)控制單繼承與多繼承派生類的構(gòu)造、析構(gòu)函數(shù)類成員的標(biāo)識(shí)與訪問(wèn)深度探索2繼承與派生問(wèn)題舉例類的繼承與派生基類派生類間接基類派生類間接基類派生類3繼承與派生問(wèn)題舉例類的繼承與派生貓科4繼承與派生問(wèn)題舉例類的繼承與派生5繼承與派生問(wèn)題舉例類的繼承與派生單繼承多繼承6類的繼承與派生保持已有類的特性而構(gòu)造新類的過(guò)程稱為繼承。在已有類的基礎(chǔ)上新增自己的特性而產(chǎn)生新類的過(guò)程稱為派生。被繼承的已有類稱為基類(或父類)。派生出的新類稱為派生類(或子類)。7繼承與派生的目的繼承
2、的目的:實(shí)現(xiàn)代碼重用。派生的目的:當(dāng)新的問(wèn)題出現(xiàn),原有程序無(wú)法解決(或不能完全解決)時(shí),需要對(duì)原有程序進(jìn)行改造。類的繼承與派生8派生類的聲明class派生類名:繼承方式1基類名1,繼承方式2基類名2,…,繼承方式n基類名n{成員聲明;}注:若不顯示給出繼承方式,則系統(tǒng)默認(rèn)是私有繼承.類的繼承與派生9派生類的生成過(guò)程:吸收:全盤吸收基類除構(gòu)造函數(shù)與析構(gòu)函數(shù)以外的所有成員.改造:改造基類的成員,同名隱藏.添加:添加自己的新成員.10繼承方式不同繼承方式的影響主要體現(xiàn)在:派生類成員對(duì)基類成員的訪問(wèn)權(quán)限通過(guò)派生類對(duì)象對(duì)基類成員的訪
3、問(wèn)權(quán)限三種繼承方式公有繼承私有繼承保護(hù)繼承類成員的訪問(wèn)控制11公有繼承(public)基類的public和protected成員的訪問(wèn)屬性在派生類中保持不變,但基類的private成員不可直接訪問(wèn)。派生類中的成員函數(shù)可以直接訪問(wèn)基類中的public和protected成員,但不能直接訪問(wèn)基類的private成員。通過(guò)派生類的對(duì)象只能訪問(wèn)基類的public成員。類成員的訪問(wèn)控制12#includeusingnamespacestd;classA{private:inti;intj;public:A(int
4、i,intj){this->i=i;this->j=j;}intGetI(){returni;}intGetJ(){returnj;}};classB:publicA{private:intk;public:B(inti,intj,intk):A(i,j){this->k=k;}intGetK(){returnk;}};voidmain(){Aa(5,6);Bb(7,8,9);cout<5、>#includeusingnamespacestd;classPoint{//基類Point類的定義public://公有函數(shù)成員voidinitPoint(floatx=0,floaty=0){this->x=x;this->y=y;}voidmove(floatoffX,floatoffY){x+=offX;y+=offY;}floatgetX()const{returnx;}floatgetY()const{returny;}private://私有數(shù)據(jù)成員floatx,y;};classRectan
6、gle:publicPoint{//派生類定義部分public://新增公有函數(shù)成員voidinitRectangle(floatx,floaty,floatw,floath){initPoint(x,y);//調(diào)用基類公有成員函數(shù)this->w=w;this->h=h;}floatgetH()const{returnh;}floatgetW()const{returnw;}private://新增私有數(shù)據(jù)成員floatw,h;};intmain(){Rectanglerect;//定義Rectangle類的對(duì)象//設(shè)置矩
7、形的數(shù)據(jù)rect.initRectangle(2,3,20,10);rect.move(3,2);//移動(dòng)矩形位置cout<<"Thedataofrect(x,y,w,h):"<8、的private成員不可直接訪問(wèn)。派生類中的成員函數(shù)可以直接訪問(wèn)基類中的public和protected成員,但不能直接訪問(wèn)基類的private成員。通過(guò)派生類的對(duì)象不能直接訪問(wèn)基類中的任何成員。類成員的訪問(wèn)控制15#include#includeusingnamesp