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

正文內(nèi)容

[工學(xué)]程序設(shè)計(jì)與問題求解ⅱ(編輯修改稿)

2024-11-12 18:40 本頁(yè)面
 

【文章內(nèi)容簡(jiǎn)介】 程序設(shè)計(jì)與問題求解 Ⅱ 29 class A { int myPrivate。 protected: int myProtected。 public: int myPublic。 }。 class B1:protected A { void SetNum(){myProtected=1。myPublic=1。} }。 class C1:public B1 { void SetNum(){myProtected=1。myPublic=1。} }。 class B2:private A { void SetNum(){myProtected=1。myPublic=1。} }。 class C2:public B2 { void SetNum(){myProtected=1。myPublic=1。} }。 多層派生( 1) √ √ √ A B1 C1 B2 C2 程序設(shè)計(jì)與問題求解 Ⅱ 30 ?不管有多少層派生,對(duì)某一個(gè)派生類來(lái)說(shuō) ?派生類中繼承成員的訪問屬性:只由其在 直接父類 的訪問屬性和繼承方式確定。 ?派生類中新增成員的訪問屬性:由其在類中的定義確定。 多層派生( 2) 程序設(shè)計(jì)與問題求解 Ⅱ 31 ?基類的構(gòu)造函數(shù)和析構(gòu)函數(shù)都不能被繼承 ,派生類中需要聲明自己的構(gòu)造函數(shù)和析構(gòu)函數(shù)。 ?在設(shè)計(jì)派生類的構(gòu)造函數(shù)時(shí)候,不僅要考慮派生類所新增的數(shù)據(jù)成員初始化,還要考慮基類的數(shù)據(jù)成員初始化。 ?聲明構(gòu)造函數(shù)時(shí),除了對(duì)本類中新增成員進(jìn)行初始化外,對(duì)繼承來(lái)的基類成員的初始化,需用初始化列表 調(diào)用基類構(gòu)造函數(shù) 完成。 派生類的構(gòu)造函數(shù)( 1) 程序設(shè)計(jì)與問題求解 Ⅱ 32 ?派生類構(gòu)造函數(shù)的一般形式 派生類名(總參數(shù)表):基類名 1(參數(shù)表 1),基類名 2(參數(shù)表 2) … ,對(duì)象成員名 1(對(duì)象參數(shù)表 1),對(duì)象成員名 2(對(duì)象參數(shù)表 2) ,… {派生類中新增數(shù)據(jù)成員的初始化} ?有三種數(shù)據(jù)要考慮初始化: ? 基類中的數(shù)據(jù)成員初始化 —— 基類構(gòu)造函數(shù) ? 本類中的對(duì)象成員初始化 —— 相應(yīng)類的構(gòu)造函數(shù) ? 本類中新增的數(shù)據(jù)成員 —— 函數(shù)體 派生類的構(gòu)造函數(shù)( 2) 程序設(shè)計(jì)與問題求解 Ⅱ 33 ?派生類構(gòu)造函數(shù)說(shuō)明: ? 總參數(shù)表 :包括派生類中新增加的數(shù)據(jù)成員,以及全部基類和全部對(duì)象成員的所有參數(shù)。 ? 如果基類中沒有定義構(gòu)造函數(shù) ,或定義了沒有參數(shù)的構(gòu)造函數(shù)(默認(rèn)構(gòu)造函數(shù)),則在初始化列表中可略去 “ 基類名(參數(shù)表) ” 。此時(shí),若派生類及對(duì)象成員都不需初始化,則可以不定義派生類的構(gòu)造函數(shù)。 ? 如果基類中定義的構(gòu)造函數(shù)帶參數(shù) ,則必須定義派生類構(gòu)造函數(shù),并通過初始化列表傳遞參數(shù)。 ? 如果基類中既定義無(wú)參的構(gòu)造函數(shù),又定義了有參的構(gòu)造函數(shù), 在定義派生類構(gòu)造函數(shù)時(shí),既可以包含基類構(gòu)造函數(shù)及其參數(shù),也可以不包含基類構(gòu)造函數(shù)。 派生類的構(gòu)造函數(shù)( 3) 程序設(shè)計(jì)與問題求解 Ⅱ 34 派生類的構(gòu)造函數(shù)( 4) ?派生類默認(rèn)構(gòu)造函數(shù) ?如果沒有定義構(gòu)造函數(shù),則會(huì)調(diào)用默認(rèn)的無(wú)參構(gòu)造函數(shù)。 ?派生類的默認(rèn)構(gòu)造函數(shù)首先會(huì)調(diào)用父類的無(wú)參構(gòu)造函數(shù)(如果父類定義了有參構(gòu)造函數(shù),又沒有重載無(wú)參構(gòu)造函數(shù),則編譯錯(cuò)誤)。 ?如果父類的上面還有父類,則依次類推。 程序設(shè)計(jì)與問題求解 Ⅱ 35 ?派生類構(gòu)造函數(shù)執(zhí)行次序: ?調(diào)用基類構(gòu)造函數(shù),調(diào)用順序按照被聲明時(shí)的順序 ?調(diào)用對(duì)象成員構(gòu)造函數(shù),調(diào)用順序按照被聲明時(shí)的順序 ?執(zhí)行派生類構(gòu)造函數(shù)體 派生類的構(gòu)造函數(shù)( 5) 程序設(shè)計(jì)與問題求解 Ⅱ 36 ?析構(gòu)函數(shù)也不被繼承,派生類需自行聲明。 ? 聲明方法與一般(無(wú)繼承關(guān)系時(shí))類的析構(gòu)函數(shù)相同。 ?不需要顯式地調(diào)用基類的析構(gòu)函數(shù),系統(tǒng)會(huì)自動(dòng)隱式調(diào)用。 ?析構(gòu)函數(shù)的調(diào)用次序與構(gòu)造函數(shù)相反。 派生類的析構(gòu)函數(shù) 調(diào)用構(gòu)造函數(shù)的次序: 基類 對(duì)象成員 派生類 基類 對(duì)象成員 派生類 調(diào)用析構(gòu)函數(shù)的次序: 程序設(shè)計(jì)與問題求解 Ⅱ 37 include includecstring class Person { char Name[10]。 //姓名 int Age。 //年齡 public: Person(char* name,int age) { strcpy(Name, name)。 Age = age。 coutconstructor of personNameendl。 } ~Person() { coutdeconstrutor of personNameendl。} }。 class Student : public Person { char ClassName[10]。 //班級(jí) Person Monitor。 //班長(zhǎng) ,對(duì)象成員 public: Student(char *name, int age, char *classname, char *name1, int age1):Person(name, age) , Monitor(name1, age1) { strcpy(ClassName, classname)。 coutconstructor of Student endl。 } ~Student() { coutdeconstrucor of Student endl。 } }。 int main() { Student stu(張弓長(zhǎng) ,18,計(jì)算機(jī)51,李木子 ,20)。 return 0。 } 程序設(shè)計(jì)與問題求解 Ⅱ 38 include iostream include string using namespace std。 class Student { public: Student(int n, string nam) {num=n。 name=nam。} void display() {coutnum:numendl。 coutname:nameendl。} protected: int num。 string name。 }。 class Student1:public Student { public: Student1(int n, string nam,int n1, string nam1,int a, string ad): Student(n,nam),monitor(n1,nam1) {age=a。 addr=ad。 } void show() {coutThis student is:endl。 display()。 coutage:ageendl。 coutaddress:addrendl。} void show_monitor() { coutendlClass monitor is: endl。 ()。 } private: Student monitor。 int age。 string addr。 }。 int main(){ Student1 stud1(10010,Wangli, 1001,Liuxiang,19,115 Beijing Road,Shanghai)。 ()。 ()。 return 0。 } 程序設(shè)計(jì)與問題求解 Ⅱ 39 多層派生時(shí)的構(gòu)造函數(shù) include iostream include string using namespace std。 class Student {public: Student(int n, string nam) { num=n。 name=nam。 coutconstructor of Student 。 coutnum:num name: nameendl。} protected: int num。 string name。 }。 class Student1:public Student {public: Student1(int n, string nam, int a): Student(n,nam) {age=a。 coutconstructor of Student1 age:ageendl。} private: int age。 }。 class Student2:public Student1 { public: Student2(int n, string nam,int a,int s) :Student1(n,nam,a) {score=s。 coutconstructor of Student2 score:scoreendl。 } private: int score。 }。 int main() { Student2 stud(10010,Li,17,89)。 return 0。 } 程序設(shè)計(jì)與問題求解 Ⅱ 40 多層派生時(shí)的構(gòu)造函數(shù)(續(xù)) ?先初始化 Student的數(shù)據(jù)成員 num和 name ?再初始化 Student1的數(shù)據(jù)成員 age ?最后再初始化 Student2的數(shù)據(jù)成員 score ?有 多層派生 時(shí),每一層派生類的構(gòu)造函數(shù),不需要列出其上面所有各層派生類的構(gòu)造函數(shù), 只需寫出直接父類的構(gòu)造函數(shù)即可 。 程序設(shè)計(jì)與問題求解 Ⅱ 41 派生類的拷貝構(gòu)造函數(shù) ?拷貝構(gòu)造與構(gòu)造函數(shù)的方式類似: ?派生類若自定義拷貝構(gòu)造函數(shù) ,則派生類對(duì)象在拷貝創(chuàng)建時(shí)先調(diào)用父類的拷貝構(gòu)造函數(shù),再調(diào)用派生類拷貝構(gòu)造函數(shù)完成自己的拷貝。 ?若基類沒有定義拷貝構(gòu)造函數(shù) ,則派生類對(duì)象在拷貝創(chuàng)建中調(diào)用基類默認(rèn)的拷貝構(gòu)造函數(shù)。 ?派生類若沒有定義拷貝構(gòu)造函數(shù) ,則派生類對(duì)象在拷貝創(chuàng)建時(shí)先調(diào)用父類的默認(rèn)拷貝構(gòu)造函數(shù),再調(diào)用派生類默認(rèn)拷貝構(gòu)造函數(shù)。 程序設(shè)計(jì)與問題求解 Ⅱ 42 ?繼承與派生結(jié)構(gòu): ?單派生:一個(gè)基類派生出一個(gè)派生類 ?多派生:一個(gè)基類派生出多個(gè)不同的派生類 ?多層派生:派生類又作為基類,繼續(xù)派生新的類 ?單繼承:派生類只從一個(gè)基類派生 ?多(重)繼承:派生類從多個(gè)基類派生 繼承與派生結(jié)構(gòu) 程序設(shè)計(jì)與問題求解 Ⅱ 43 多派生 include iostream include cstring using namespace std。 class Person {protected: char Name[10]。 char Sex。 int Age。 public: void Register(char *name,int age,char sex) { strcpy(Name, name)。 Sex= (sex==39。m39。? 39。m39。: 39。f39。 )。 Age = age。} void ShowMe() {cout 姓名: Namee
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1