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

正文內(nèi)容

第11章繼承與派生(編輯修改稿)

2024-10-07 09:21 本頁(yè)面
 

【文章內(nèi)容簡(jiǎn)介】 ~ Student( )。 Manager::Manager(const stringamp。 n, int d, int lvl) : family_name(n), // error: family_name not declared in manager department(d), // error: department not declared in manager level(lvl) { // ... } 派生類的構(gòu)造函數(shù)只能描述它自己的成員和自己的直接基類的初始式,它不能直接去初始化基類的成員。 簡(jiǎn)單的派生類的構(gòu)造函數(shù) 有子對(duì)象的派生類的構(gòu)造函數(shù) ? 類的數(shù)據(jù)成員中可以包含類對(duì)象,如 : Student s1。 ? s1就是類對(duì)象中的內(nèi)嵌對(duì)象,稱為子對(duì)象,即對(duì)象中的對(duì)象。 例 包含子對(duì)象的派生類的構(gòu)造函數(shù)。 include iostream include string using namespace std。 class Student {public: //公用部分 Student(int n, string nam ) //基類構(gòu)造函數(shù) {num=n。 name=nam。 } void display( ) {cout″num:″numendl″name:″nameendl。} protected: //保護(hù)部分 int num。 string name。 }。 class Student1: public Student //聲明公用派生類 Student1 {public: Student1(int n, string nam,int n1, string nam1,int a, string ad) :Student(n,nam),monitor(n1,nam1) //派生類構(gòu)造函數(shù) {age=a。 addr=ad。 } void show( )。 void show_monitor( )。 //成員函數(shù),輸出子對(duì)象 private: //派生類的私有數(shù)據(jù) Student monitor。 //定義子對(duì)象 (班長(zhǎng) ) int age。 string addr。 }。 void Student1:: show( ) {cout″This student is:″e(cuò)ndl。 display()。 //輸出 num和 name cout″age: ″ageendl。 //輸出 age cout″address: ″addrendlendl。 //輸出 addr } void Student1::show_monitor( ) {coutendl″Class monitor is:″e(cuò)ndl。 ( )。 //調(diào)用基類成員函數(shù) } int main( ) {Student1 stud1(10010,″Wangli″,10001,″Lisun″,19,″115 Beijing Road,Shanghai″)。 ( )。 //輸出學(xué)生的數(shù)據(jù) ()。 //輸出子對(duì)象的數(shù)據(jù) return 0。 } 有子對(duì)象的派生類的構(gòu)造函數(shù) 派生類構(gòu)造函數(shù)的任務(wù)應(yīng)該包括 3個(gè)部分 : ( 1) 對(duì)基類數(shù)據(jù)成員初始化; ( 2) 對(duì)子對(duì)象數(shù)據(jù)成員初始化; ( 3) 對(duì)派生類數(shù)據(jù)成員初始化。 有子對(duì)象的派生類的構(gòu)造函數(shù) ?執(zhí)行派生類構(gòu)造函數(shù)的順序是 : ① 調(diào)用基類構(gòu)造函數(shù),對(duì)基類數(shù)據(jù)成員初始化; ② 調(diào)用子對(duì)象構(gòu)造函數(shù),對(duì)子對(duì)象數(shù)據(jù)成員初始化; ③ 再執(zhí)行派生類構(gòu)造函數(shù)本身,對(duì)派生類數(shù)據(jù)成員初始化 。 多層派生時(shí)的構(gòu)造函數(shù) 一個(gè)類不僅可以派生出一個(gè)派生類,派生類還可以繼續(xù)派生,形成派生的層次結(jié)構(gòu)。 例 多級(jí)派生情況下派生類的構(gòu)造函數(shù)。 include iostream includestring using namespace std。 class Student {public: //公用部分 Student(int n, string nam ) //基類構(gòu)造函數(shù) {num=n。 name=nam。 } void display( ) //輸出基類數(shù)據(jù)成員 {cout″num:″numendl。 cout″name:″nameendl。 } protected: //保護(hù)部分 int num。 //基類有兩個(gè)數(shù)據(jù)成員 string name。 }。 class Student1: public Student {public: Student1(int n,char nam[10],int a):Student(n,nam) {age=a。 } void show( ) //輸出 num, name和 age {display( )。 //輸出 num和 name cout″age: ″ageendl。 } private: //派生類的私有數(shù)據(jù) int age。 //增加一個(gè)數(shù)據(jù)成員 }。 class Student2:public Student1 {public: Student2(int n, string nam,int a,int s):Student1(n,nam,a) { score=s。} void show_all( ) //輸出全部數(shù)據(jù)成員 { show( )。 //輸出 num和 name cout″score:″scoreendl。 //輸出 age } private: int score。 //增加一個(gè)數(shù)據(jù)成員 }。 int main( ) {Student2 stud(10010,″Li″,17,89)。 ( )。 //輸出學(xué)生的全部數(shù)據(jù) return 0。 } 派生關(guān)系如圖所示 派生類構(gòu)造函數(shù)的特殊形式 1. 當(dāng)不需要對(duì)派生類新增的成員進(jìn)行任何初始化操作時(shí),派生類構(gòu)造函數(shù)的函數(shù)體可以為空。 2. 如果在基類中構(gòu)造函數(shù)沒有參數(shù),那么在定義派生類構(gòu)造函數(shù)時(shí)可不寫基類構(gòu)造函數(shù)。 3. 如果在基類和子對(duì)象類型的聲明中都沒有定義帶參數(shù)的構(gòu)造函數(shù),而且也不需對(duì)派生類自己的數(shù)據(jù)成員初始化,則可以不必顯式地定義派生類構(gòu)造函數(shù)。 派生類構(gòu)造函數(shù)的特殊形式 4. 如果在基類或子對(duì)象類型的聲明中定義了帶參數(shù)的構(gòu)造函數(shù),那么就必須顯式地定義派生類構(gòu)造函數(shù),并在派生類構(gòu)造函數(shù)中寫出基類或子對(duì)象類型的構(gòu)造函數(shù)及其參數(shù)表。 5. 如果在基類中既定義無參的構(gòu)造函
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1