freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

【精品】面向?qū)ο蟪绦蛟O(shè)計語言c84-文庫吧

2025-03-27 06:55 本頁面


【正文】 ss Base{ protected: int v1。 public: int v2。 Base(int a=0,int b=0){ v1=a。v2=b。 } }。 class Derived : public Base{ int v3。 public: int v4。 Derived(int a=0,int b=0){ v3=a。v4=b。 } void func(){ int sum1=v1+v2+v3+v4。//正確 int sum2=v2+v3+v4。 } }。 void main( ){ Derived obj(5,6)。 =8。//錯誤 } 6/6/2020 17 保護(hù)派生類 ? 在聲明派生類時將繼承方式指定為protected時 , 該類稱為基類的保護(hù)派生類: class 派生類名 : protected 基類名 { …… //派生類新添加的成員 }。 6/6/2020 18 ? 基類的成員在保護(hù)派生類中的引用權(quán)限 基類 公有成員 私有成員 保護(hù)成員 保護(hù)派生類 保護(hù)成員 不可訪問成員 保護(hù)成員 ? 保護(hù)派生時 , 基類的公有成員和保護(hù)成員成為派生類的保護(hù)成員;而基類的私有成員成為派生類的 “ 不可訪問成員 ” 。 ? 一般很少使用保護(hù)派生方式 。 6/6/2020 19 小結(jié) ? 不同的繼承方式 , 子類對基類中的成員的訪問權(quán)限如下表所示: 基類 公有成員 私有成員 保護(hù)成員 公有派生類 公有成員 不可訪問成員 保護(hù)成員 保護(hù)派生類 保護(hù)成員 不可訪問成員 保護(hù)成員 私有派生類 私有成員 不可訪問成員 私有成員 6/6/2020 20 派生類與基類同名成員的訪問方式 ? C++允許派生類可以重新定義基類的成員 ,此時稱派生類的成員 覆蓋 了基類的同名成員 。 ? 如果在派生類中 , 或通過派生類對象來使用基類的同名成員 , 則可以顯式地使用 類名限定符 , 方式如下: 基類名 ::成員 6/6/2020 21 舉例 class Base{ protected: int v1。 public: int v2。 Base(int a=0,int b=0){ v1=a。v2=b。 } }。 class Derived : public Base{ int v2。 public: int v3。 Derived(int a=0,int b=0){ v2=a。v3=b。 } void func(){ //使用的是 Derived中的 v2 int sum1=v1+v2+v3。 //使用的是 Base中的 v2 int sum2=v1+Base::v2+v3。 } }。 void main( ){ Derived obj(5,6)。 =8。//錯誤 ::v2=9。 } 6/6/2020 22 ? 當(dāng)從現(xiàn)成的類派生出新類時 , 派生類將繼承基類所有的特性 ( 成員 ) , 還可以有以下功能: – 增加新的成員 – 重新定義成員 ? 從編碼的角度來看 , 派生類從基類中以較低的代價換來了較大的靈活性 。 一旦產(chǎn)生了可靠的基類 , 只需要調(diào)試派生類中所作的修改即可 。 派生類可以對繼承的屬性進(jìn)行擴(kuò)展 、 限制或改變 。 總結(jié) 6/6/2020 23 賦值兼容規(guī)則 ? 在 公有派生 方式下 , 派生類對象可以作為基類對象來使用 , 具體方式如下: – 派生類的對象可以直接賦值給基類的對象 – 基類對象的引用可以引用一個派生類對象 – 基類對象的指針可以指向一個派生類對象 ? 需要思考的兩個問題: – 為什么是 “ 派生類對象 基類對象 ” , 而不是 “ 基類對象 派生類對象 ” ? – 其他繼承方式會有以上規(guī)則嗎 ? 6/6/2020 24 解決第一個問題 ? 以上規(guī)則的具體使用方式: v1 v2 v1 v2 v3 v4 基類對象 派生類對象 Base Bobj。 Derived Dobj。 Bobj=Dobj。 Base amp。refB=Dobj。 Base *pB=amp。Dobj。 ? 基類對象和派生類對象的內(nèi)存布局方式 6/6/2020 25 ? 當(dāng)一個派生類對象直接賦值給基類對象時 ,很明顯地 , 不是所有的數(shù)據(jù)都賦給了基類對象 , 賦予的只是派生類對象的一部分 。 這部分叫做派生類類對象的 “ 切片 ” (sliced)。 6/6/2020 26 解決第二個問題 ? 回憶一下不同的繼承方式 , 子類對基類中的成員的訪問權(quán)限: 基類 公有成員 私有成員 保護(hù)成員 公有派生類 公有成員 不可訪問成員 保護(hù)成員 私有派生類 私有成員 不可訪問成員 私有成員 保護(hù)派生類 保護(hù)成員 不可訪問成員 保護(hù)成員 ? 只有在公有派生的情況下 , 才有可能出現(xiàn)“ 基類的公有成員變成派生類的公有成員 ”的情況 。 6/6/2020 27 派生類對象的初始化 ? 派生類對象包含了從基類繼承過來的數(shù)據(jù)。如果基類有自定義的構(gòu)造函數(shù)或有帶參數(shù)的構(gòu)造函數(shù),那么如何調(diào)用基類的構(gòu)造函數(shù)來初始化基類數(shù)據(jù)呢?C++采用如下方式來定義派生類的構(gòu)造函數(shù): 派生類構(gòu)造函數(shù) (參數(shù)表 ):基類構(gòu)造函數(shù) (參數(shù)表 ),對象成員 (參數(shù)表 ) { ……//初始化自定義數(shù)據(jù)成員 } ? 如果基類使用的是缺省的構(gòu)造函數(shù)或不帶參數(shù)的構(gòu)造函數(shù),那么在初始化列表中可以省略“ 基類構(gòu)造函數(shù) (參數(shù)表 )”這一項。 6/6/2020 28 ? 構(gòu)造函數(shù)的調(diào)用順序如下: 先調(diào)用基類構(gòu)造函數(shù); 再調(diào)用對象成員所屬類的構(gòu)造函數(shù); 最后調(diào)用派生類構(gòu)造函數(shù); ? 析構(gòu)函數(shù)的調(diào)用順序如下: 先調(diào)用派生類的析構(gòu)函數(shù); 再調(diào)用對象成員所屬類的析構(gòu)函數(shù); 最后調(diào)用基類的析構(gòu)函數(shù); 6/6/2020 29 舉例 class Base{ public: Base() { cout“Base created\n”。} }。
點擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1