C++面向?qū)ο蟪绦蛟O(shè)計(jì)教程(第3版)—-陳維興,林小茶課后習(xí)習(xí)題答案_第1頁(yè)
C++面向?qū)ο蟪绦蛟O(shè)計(jì)教程(第3版)—-陳維興,林小茶課后習(xí)習(xí)題答案_第2頁(yè)
C++面向?qū)ο蟪绦蛟O(shè)計(jì)教程(第3版)—-陳維興,林小茶課后習(xí)習(xí)題答案_第3頁(yè)
C++面向?qū)ο蟪绦蛟O(shè)計(jì)教程(第3版)—-陳維興,林小茶課后習(xí)習(xí)題答案_第4頁(yè)
C++面向?qū)ο蟪绦蛟O(shè)計(jì)教程(第3版)—-陳維興,林小茶課后習(xí)習(xí)題答案_第5頁(yè)
已閱讀5頁(yè),還剩31頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、 C+面向?qū)ο蟪绦蛟O(shè)計(jì)教程課后題答案   什么是面向?qū)ο蟪绦蛟O(shè)計(jì)面向?qū)ο蟪绦蛟O(shè)計(jì)是一種新的程序設(shè)計(jì)范型.這種范型的主要特征是:程序=對(duì)象+消息面向?qū)ο蟪绦虻幕驹厥菍?duì)象。主要結(jié)構(gòu)特點(diǎn)是:第一,   程序一般由類(lèi)的定義和類(lèi)的使用兩部分組成;第二,   程序中的一切操作都是通過(guò)向?qū)ο蟀l(fā)送消息來(lái)實(shí)現(xiàn)的。    什么是對(duì)象什么是類(lèi)對(duì)象與類(lèi)之間的關(guān)系是什么對(duì)象是描述其屬性的數(shù)據(jù)以及對(duì)這些數(shù)據(jù)施加的一組操作封裝在一起構(gòu)成的統(tǒng)一體。類(lèi)就是具有相同的數(shù)據(jù)和相同的操作的一組對(duì)象的集合,也就是說(shuō),類(lèi)是對(duì)具有相同數(shù)據(jù)結(jié)構(gòu)和相

2、同操作的一類(lèi)對(duì)象的描述。類(lèi)和對(duì)象之間的關(guān)系是抽象和具體的關(guān)系。類(lèi)是多個(gè)對(duì)象進(jìn)行綜合抽象的結(jié)果,一個(gè)對(duì)象是類(lèi)的一個(gè)實(shí)例。    現(xiàn)實(shí)世界中的對(duì)象有哪些特征請(qǐng)舉例說(shuō)明?,F(xiàn)實(shí)世界中的對(duì)象具有以下特征:1)         每一個(gè)對(duì)象必須有一個(gè)名字以區(qū)別于其他對(duì)象;2)         用屬性來(lái)描述對(duì)象的某些特征;3)        

3、有一組操作,每組操作決定對(duì)象的一種行為;4)         對(duì)象的行為可以分為兩類(lèi):一類(lèi)是作用于自身的行為,另一類(lèi)是作用于其他對(duì)象的行為。例如一個(gè)教師是一個(gè)對(duì)象。每個(gè)教師對(duì)象有自己的名字來(lái)和別的教師區(qū)別。教師具有編號(hào),姓名,年齡,職稱,專業(yè)等屬性。教師擁有走路,吃飯,授課等行為操作。走路,吃飯是作用于自身的行為,授課是作用于其他對(duì)象的行為。    什么是消息消息具有什么性質(zhì)一個(gè)對(duì)象向另一個(gè)對(duì)象發(fā)出的請(qǐng)求成為“消息”。消息具有以下3個(gè)性質(zhì):1)   

4、60;     同一個(gè)對(duì)象可以接收不同形式的多個(gè)消息,做出不同的相應(yīng);2)         相同形式的消息可以傳遞給不同的對(duì)象,所做出的響應(yīng)可以是不同的;3)         對(duì)消息的響應(yīng)并不是必須的,對(duì)象可以響應(yīng)消息,也可以不響應(yīng)。    什么是抽象和封裝請(qǐng)舉例說(shuō)明。抽象是將有關(guān)事物的共性歸納、集中的過(guò)程。例如:把所有具有大學(xué)生學(xué)籍的人歸為一類(lèi),成為“大學(xué)生”,這就

5、是一個(gè)抽象。封裝是指把數(shù)據(jù)和實(shí)現(xiàn)操作的代碼集中起來(lái)放在對(duì)象內(nèi)部,并盡可能隱藏對(duì)象的內(nèi)部細(xì)節(jié)。例如:每一臺(tái)洗衣機(jī)都有出廠日期、機(jī)器編號(hào)等屬性,也有啟動(dòng)、暫停、選擇等操作。人們?cè)谑褂孟匆聶C(jī)的時(shí)候只需要按下對(duì)應(yīng)的按鈕,而不用關(guān)心具體的內(nèi)部實(shí)現(xiàn)。這就是封裝。    什么是繼承請(qǐng)舉例說(shuō)明。繼承就是允許派生類(lèi)使用基類(lèi)的數(shù)據(jù)和操作,同時(shí),派生類(lèi)還可以增加新的操作和數(shù)據(jù)。例如:哺乳動(dòng)物是一種熱血、有毛發(fā)、用奶哺育幼崽的動(dòng)物; 狗是有犬牙、食肉、特定的骨骼結(jié)構(gòu)、群居的哺乳動(dòng)物。 狗就繼承了哺乳動(dòng)物。    若類(lèi)之間具有繼承關(guān)系,則他們之間具有什么特征若

6、類(lèi)之間具有繼承關(guān)系,則他們之間具有下列幾個(gè)特征:1)         類(lèi)間具有共享特征(包括數(shù)據(jù)和操作代碼的共享);2)         類(lèi)間具有差別或新增部分(包括非共享的數(shù)據(jù)和操作代碼);3)         類(lèi)具有層次結(jié)構(gòu)。    什么是單繼承、多繼承請(qǐng)舉例說(shuō)明。單繼承是指每個(gè)派生類(lèi)只直接繼承了一個(gè)基類(lèi)的特征。例如狗繼承自

7、哺乳動(dòng)物。多繼承是指多個(gè)基類(lèi)派生出一個(gè)派生類(lèi)的繼承關(guān)系。比如玩具車(chē)同時(shí)繼承自玩具和車(chē)。    什么是多態(tài)請(qǐng)舉例說(shuō)明。多態(tài)是指不同的對(duì)象收到相同的消息時(shí)執(zhí)行不同的操作。例如,有一個(gè)窗口類(lèi)對(duì)象,還有一個(gè)棋子類(lèi)對(duì)象。當(dāng)我們發(fā)出“移動(dòng)”消息時(shí),兩個(gè)對(duì)象的行為不同。    面向?qū)ο蟪绦蛟O(shè)計(jì)的主要優(yōu)點(diǎn)是什么1. 可提高程序的重用性;2. 可控制程序的復(fù)雜性;3. 可改善程序的可維護(hù)性;4. 能夠更好地支持大型程序設(shè)計(jì);5. 增強(qiáng)了計(jì)算機(jī)處理信息的范圍;能夠很好地適應(yīng)新的硬件環(huán)境。 簡(jiǎn)述C+的主要特點(diǎn)。1)   

8、60;     C+是C的超集,保持與C的兼容。2)         保持了C的簡(jiǎn)潔、高效和接近匯編語(yǔ)言等特點(diǎn),并對(duì)C的功能作了不少擴(kuò)充。用C+編寫(xiě)的程序比C更安全,可讀性更好,代碼結(jié)構(gòu)更為合理。3)         程序質(zhì)量高。4)         增加了面向?qū)ο髾C(jī)制。 #include <iostr

9、eam>using namespace std;int main() int a, b, d, min; cout << "Enter two numbers:" cin >> a >> b; min = a > b b : a; for(d = 2; d < min; d+) if(a % d) = 0) && (b % d ) = 0) break; if (d = min) cout << "No common denominators" << endl;

10、 return 0; cout << "The lowest common denominator is" << d << endl; return 0;  有效  沒(méi)有函數(shù)聲明;         函數(shù)定義沒(méi)有寫(xiě)返回值類(lèi)型。  (1)等價(jià),函數(shù)聲明可以省略參數(shù)的名字。         (2)不等價(jià),第二個(gè)的函數(shù)定義不能省略參數(shù)的名字。  CD

11、AAB  ACBDC  DC 101 10 10 1020  舉例說(shuō)明可以使用const替代#define以消除#define的不安全性。#include <iostream>using namespace std;int main() int a = 1;#define T1 a+a#define T2 T1-T1 cout << "T2 is " << T2 <<endl; return 0;上面這個(gè)程序,初看應(yīng)該輸出 T2 is 0但是實(shí)際上,得出T2 is 2

12、 如果把#define換成const, 則可以輸出想要的結(jié)果。  用動(dòng)態(tài)分配空間的方法,計(jì)算Fibonacci數(shù)列的前20項(xiàng),并存儲(chǔ)到動(dòng)態(tài)分配的空間中。#include <iostream>using namespace std;int main() int *pi = new int20; *pi = 1; pi1 = 1; for(int i = 2; i < 20; i+) pii = pii - 2 + pii - 1; return 0;  重載sroot函數(shù),輸出一個(gè)數(shù)的二次方根。#include <iostream>us

13、ing namespace std;double sroot(int num) return (double)sqrt(double)num);double sroot(long num) return (double)sqrt(double)num);double sroot (double num) return (double)sqrt(num);int main() return 0; 解決百錢(qián)問(wèn)題。將一元人民幣換成1、2、5分的硬幣,有多少種換法#include <iostream>using namespace std;int main() int num = 0; &

14、#160;        Default constructor called.         Default constructor called.         Construcotor:a=1,b=2         Construcotor:a=3,b=4  

15、;       Construcotor:a=5,b=6          Con.         Copy con.         default.         Copy con. 

16、0;        A=5         B=14         A=9         B=14          5,7      

17、             Constructing         Constructing         A=5         B=15         A=10&

18、#160;        B=15         Destructing         Destructing          void pintStu();函數(shù)只有聲明,沒(méi)有定義。       

19、0; age是私有成員,不能用對(duì)象直接調(diào)用。          void printStu() 和 void setSno(int s) 沒(méi)有加限定符 Student:         void setAge(int a)在類(lèi)中沒(méi)有聲明          構(gòu)造函數(shù)不能定義為私有。否則無(wú)法創(chuàng)建對(duì)象。  下面是一個(gè)計(jì)算器類(lèi)的定義,請(qǐng)

20、完成該類(lèi)成員函數(shù)的實(shí)現(xiàn)。class counterpublic: counter(int number); void increment(); ult() << " "   修改,通過(guò)對(duì)象指針訪問(wèn)對(duì)象數(shù)組,使程序以相反的順序顯示每個(gè)對(duì)象數(shù)組元素的qu*price值。class bookprivate: int qu, price;public: book(int qu); int mult();book:book(int q) if(q < 1 | q > 5) qu = 1; else qu = q; price = 10 * qu;in

21、t book:mult() return qu * price;int main() book books5 = 1,2,3,4,5; book *p = books; p += 4; for(int i = 0; i < 5; i+) cout << p->mult() << " " -p; return 0;  構(gòu)建一個(gè)類(lèi)Stock,含字符數(shù)組stockcode及整型數(shù)組成員quan、雙精度型數(shù)據(jù)成員price。構(gòu)造函數(shù)含3個(gè)參數(shù):字符數(shù)組na及q、p。當(dāng)定義Stock的類(lèi)對(duì)象時(shí),將對(duì)象的第一個(gè)字符串參數(shù)賦給數(shù)據(jù)成員stoc

22、kcode,第2和第3個(gè)參數(shù)分別賦給quan、price。未設(shè)置第2和第3個(gè)參數(shù)時(shí),quan的值為1000,price的值為.成員函數(shù)print沒(méi)有形參,需使用this指針,顯示對(duì)象數(shù)據(jù)成員的內(nèi)容。編寫(xiě)程序顯示對(duì)象數(shù)據(jù)成員的值。#include <iostream>using namespace std;class Stockprivate: char stockcode25; int quan; double price;public: Stock(char na, int q = 1000, double p = ; Stock(char na); void print();S

23、tock:Stock(char na, int q = 1000, double p = strcpy(stockcode, na); quan = q; price = p;void Stock:print() cout << "stockcode: " << this->stockcode << " quan: " << this->quan << " price: " << this->price << endl;int mai

24、n() Stock stock1("600001", 3000, ; Stock stock2("600002"); (); (); return 0;  編寫(xiě)一個(gè)程序,已有若干學(xué)生的數(shù)據(jù),包括學(xué)號(hào)、姓名、成績(jī),要求輸出這些學(xué)生的數(shù)據(jù)并計(jì)算出學(xué)生人數(shù)和平均成績(jī)(要求將學(xué)生人數(shù)和總成績(jī)用靜態(tài)數(shù)據(jù)成員表示)。#include <iostream>using namespace std;class studentprivate: char name25, studentNo10; int score; static int sum; st

25、atic int totalScore;public: student(char na, char stuNo, int sc); void show(); static void showTotal();student:student(char na, char stuNo, int sc) strcpy(name, na); strcpy(studentNo, stuNo); score = sc; +sum; totalScore += sc;void student:show() cout << "姓名: " << name <<

26、endl; cout << "學(xué)號(hào): " << studentNo << endl; cout << "成績(jī): " << score << endl;void student:showTotal() cout << "總?cè)藬?shù): " << sum << endl; cout << "平均成績(jī): " << (double)totalScore/sum <<endl;int st

27、udent:sum = 0;int student:totalScore = 0;int main() student s1("張無(wú)忌", "111254", 75); student s2("李莫愁", "254114", 60); student s3("小龍女", "112587", 88); (); (); (); student:showTotal();return 0; 有哪幾種繼承方式每種方式的派生類(lèi)對(duì)基類(lèi)成員的繼承性如何   &#

28、160;     公有繼承,私有繼承和保護(hù)繼承。         基類(lèi)的私有成員,無(wú)論哪種繼承方式都不能訪問(wèn)。         公有繼承不改變基類(lèi)的公有和保護(hù)成員的訪問(wèn)限制。         私有繼承將基類(lèi)的公有和保護(hù)成員都變成私有。       &

29、#160; 保護(hù)繼承將基類(lèi)的公有和保護(hù)成員都變成保護(hù)。  派生類(lèi)能否直接訪問(wèn)基類(lèi)的私有成員若否,應(yīng)如何實(shí)現(xiàn)         不能??梢栽诨?lèi)里添加一個(gè)公有成員函數(shù)來(lái)訪問(wèn)私有成員,派生類(lèi)就能繼承這個(gè)公有成員函數(shù),實(shí)現(xiàn)對(duì)基類(lèi)私有成員的訪問(wèn)。  保護(hù)成員有哪些特性保護(hù)成員以公有方式或私有方式繼承后的訪問(wèn)特性如何         保護(hù)成員只能被本類(lèi)或本類(lèi)的派生類(lèi)所訪問(wèn),在類(lèi)或派生類(lèi)外是不能被訪問(wèn)的。  &

30、#160;      后面一問(wèn)見(jiàn)第一題的答案。  派生類(lèi)構(gòu)造函數(shù)和析構(gòu)函數(shù)的執(zhí)行順序是怎樣的         構(gòu)造函數(shù)是先執(zhí)行父類(lèi)的構(gòu)造函數(shù),再執(zhí)行類(lèi)中其他類(lèi)對(duì)象的構(gòu)造函數(shù),再執(zhí)行本類(lèi)的構(gòu)造函數(shù)。如果同級(jí)有多個(gè)構(gòu)造函數(shù),則按聲明順序執(zhí)行。         析構(gòu)函數(shù)與構(gòu)造函數(shù)的執(zhí)行順序剛好相反。  派生類(lèi)構(gòu)造函數(shù)和析構(gòu)函數(shù)的構(gòu)造規(guī)則是怎樣的  

31、60;      派生類(lèi)名(參數(shù)總表) : 基類(lèi)名(參數(shù)總表)                            派生類(lèi)新增數(shù)據(jù)成員的初始化語(yǔ)句派生類(lèi)中的析構(gòu)函數(shù)與基類(lèi)無(wú)關(guān)。  什么是多繼承多繼承時(shí),構(gòu)造函數(shù)與析構(gòu)函數(shù)的執(zhí)行順序是怎樣的   &#

32、160;     多繼承是指一個(gè)類(lèi)同時(shí)繼承自多個(gè)不同的基類(lèi)。         執(zhí)行順序同  在類(lèi)的派生中為何要引入虛基類(lèi)虛基類(lèi)構(gòu)造函數(shù)的調(diào)用順序是如何規(guī)定的         如果一個(gè)類(lèi)有多個(gè)直接基類(lèi),而這些直接基類(lèi)又有一個(gè)共同的基類(lèi),則在最底層的派生類(lèi)中會(huì)保留這個(gè)簡(jiǎn)介的共同基類(lèi)數(shù)據(jù)成員的多份同名成員。在訪問(wèn)這些同名成員的時(shí)候,會(huì)產(chǎn)生二義性。為了解決二義性,引入了虛基類(lèi)。1) &

33、#160;       如果虛基類(lèi)中定義有帶形參的構(gòu)造函數(shù),并且沒(méi)有定義默認(rèn)形式的構(gòu)造函數(shù),則整個(gè)繼承結(jié)構(gòu)中,所有直接或間接的派生類(lèi)都必須在構(gòu)造函數(shù)的成員初始化表中列出對(duì)虛基類(lèi)構(gòu)造函數(shù)的調(diào)用,以初始化在虛基類(lèi)中定義的數(shù)據(jù)成員。2)         建立一個(gè)對(duì)象時(shí),如果這個(gè)對(duì)象中含有從虛基類(lèi)繼承來(lái)的成員,則虛基類(lèi)的成員是由最遠(yuǎn)派生類(lèi)的構(gòu)造函數(shù)通過(guò)調(diào)用虛基類(lèi)的構(gòu)造函數(shù)進(jìn)行初始化的。該派生類(lèi)的其他基類(lèi)對(duì)虛基類(lèi)構(gòu)造函數(shù)的調(diào)用都自動(dòng)被忽略。3)  

34、;       若同一層次中同時(shí)包含虛基類(lèi)和非虛基類(lèi),應(yīng)先調(diào)用虛基類(lèi)的構(gòu)造函數(shù),再調(diào)用非虛基類(lèi)的構(gòu)造函數(shù),最后調(diào)用派生類(lèi)的構(gòu)造函數(shù)。  ACCB          Constructor B1.         Constructor B2.         Constructo

35、r A.         3         2         1          主食=bread         副食=steak    &#

36、160;     0,0,0         0,1,0         3,6,9          Constructor B1.         Constructor B2.    

37、     Constructor B3.         Constructor A.         1         2         4,3       

38、60;  4 (1,2)5,6(6,9)          class base1         class base2         class level2         class base2    

39、;     class level1         class toplevel #include <iostream>using namespace std;#include <iomanip>class tablepublic: table(int p, int q) i = p; j = q; void ascii(void);protected: int i, j;void table:ascii() int k = 1; for(

40、; i <= j; i+) cout << setw(4) << i << " " << (char)i; if(k)%12 = 0) cout << "n" k+; cout << "n"class der_table:public tablepublic: der_table(int p, int q, char *m):table(p,q) c = m; void print();protected: char *c;void der_table:pr

41、int() cout << c <<"n" table:ascii();int main() der_table ob('a', 'z', "ASCII value-char"); (); return 0; #include <iostream>using namespace std;#include <iomanip>class area_c1protected: double height; double width;public: area_c1(doubl

42、e r, double s) height = r; width = s; virtual double area() = 0;class rectangle : public area_c1public: rectangle(double r, double s):area_c1(r, s) virtual double area();double rectangle:area() return height * width;class isosceles : public area_c1public: isosceles(double r, double s):area_c1(r, s)

43、virtual double area();double isosceles:area() return (height * width)/2;int main() rectangle r(10, 5); isosceles i(4, 6); area_c1 *a; a = &r; cout<< "矩形的面積是:" << a->area() << endl; a = &i; cout << "三角形的面積是:" << a->area() <<endl; r

44、eturn 0; #include <iostream>using namespace std;#include <iomanip>class Timepublic: Time(int h, int m, int s) hours = h; minutes = m; seconds = s; void display() cout << "出生時(shí)間:" << hours << "時(shí)" << minutes << "分" << se

45、conds << "秒" << endl; protected: int hours, minutes, seconds;class Datepublic: Date(int m, int d, int y) month = m; day = d; year = y; void display() cout << "出生年月:" << year << "年" << month << "月" << day <<

46、 "日" << endl; protected: int month, day, year;class Birthtime : public Time, public Datepublic: Birthtime(char name, int m, int d, int y, int h, int mi, int s): Time(h, mi, s), Date(m, d, y) strcpy(Childname, name); void showName() cout << "我的名字是: " << Childname

47、 << endl; private: char Childname25;int main() Birthtime b("xiaoming", 3, 6, 2012, 11, 12, 42); (); :display(); :display(); return 0; #include <iostream>using namespace std;#include <iomanip>class personprotected: char number25; char name25;public: person(char num, c

48、har na) strcpy(number, num); strcpy(name, na); void showName() cout << "編號(hào):" << number << " 姓名:" << name; ;class student : public personprivate: int classNumber, score;public: student(char num, char na, int cNumber, int sc):person(num, na) classNumber = cN

49、umber; score = sc; void show() showName(); cout << " 班號(hào):" << classNumber << " 成績(jī):" << score << endl; ;class teacher : public personprivate: char title25, department25;public: teacher(char num, char na, char tit, char depart):person(num, na) strcpy(ti

50、tle, tit); strcpy(department, depart); void show() showName(); cout << " 職稱:" << title << " 部門(mén):" << department << endl; C+第五章習(xí)題1. 什么是靜態(tài)聯(lián)編什么是動(dòng)態(tài)聯(lián)編         靜態(tài)聯(lián)編是指系統(tǒng)在編譯時(shí)就決定如何實(shí)現(xiàn)某一動(dòng)作。     

51、60;   動(dòng)態(tài)聯(lián)編是指系統(tǒng)在運(yùn)行時(shí)動(dòng)態(tài)實(shí)現(xiàn)某一動(dòng)作。1. 編譯時(shí)的多態(tài)性與運(yùn)行時(shí)的多態(tài)性有什么區(qū)別他們的實(shí)現(xiàn)方式有什么不同靜態(tài)聯(lián)編支持的多態(tài)性稱為編譯時(shí)多態(tài)性,也稱靜態(tài)多態(tài)性。編譯時(shí)多態(tài)性是通過(guò)函數(shù)重載和模板實(shí)現(xiàn)的。動(dòng)態(tài)聯(lián)編所支持的多態(tài)性稱為運(yùn)行時(shí)多態(tài)性,也稱動(dòng)態(tài)多態(tài)性。是通過(guò)虛函數(shù)來(lái)實(shí)現(xiàn)的。 1. 簡(jiǎn)述運(yùn)算符重載規(guī)則。a)         C+中絕大部分的運(yùn)算符允許重載。b)         C+只能對(duì)

52、已有的C+運(yùn)算符進(jìn)行重載。c)         運(yùn)算符重載是針對(duì)新類(lèi)型數(shù)據(jù)的實(shí)際需要,對(duì)原有運(yùn)算符進(jìn)行適當(dāng)?shù)母脑焱瓿伞?yīng)與原有的功能相類(lèi)似。d)         重載不能改變運(yùn)算符的操作對(duì)象的個(gè)數(shù)。e)         重載不能改變運(yùn)算符原有的優(yōu)先級(jí)。f)        

53、0; 不能改變?cè)械慕Y(jié)合特性。g)         參數(shù)至少應(yīng)有一個(gè)是類(lèi)對(duì)象。h)         重載函數(shù)可以是普通函數(shù),也可以是類(lèi)的成員函數(shù),也可以是類(lèi)的友元函數(shù)。i)           一般用于類(lèi)對(duì)象的運(yùn)算符除了賦值運(yùn)算符都要重載。 1. 友元運(yùn)算符函數(shù)和成員運(yùn)算符函數(shù)有什么不同a)   &

54、#160;     對(duì)于雙目運(yùn)算符,成員運(yùn)算符重載含有一個(gè)參數(shù),友元重載含有兩個(gè)參數(shù);對(duì)于單目運(yùn)算符,成員重載沒(méi)有參數(shù),友元重載有一個(gè)參數(shù)。b)         雙目運(yùn)算符一般可以被重載為友元或成員。但是如果將一個(gè)對(duì)象和一個(gè)普通類(lèi)型運(yùn)算,必須重載為友元。c)         調(diào)用方式不同。d)         一般,雙

55、目運(yùn)算符用友元,單目運(yùn)算符用成員。如果操作數(shù)有隱式類(lèi)型轉(zhuǎn)換,則必須用友元。 1. 什么是虛函數(shù)虛函數(shù)與函數(shù)重載有哪些相同點(diǎn)與不同點(diǎn)虛函數(shù)就是在基類(lèi)中被關(guān)鍵字virtual說(shuō)明,并在派生類(lèi)中重新定義的函數(shù)。函數(shù)名都相同。重載函數(shù)的參數(shù)個(gè)數(shù)或參數(shù)類(lèi)型必須有所不同。虛函數(shù)要求函數(shù)名,返回類(lèi)型,參數(shù)個(gè)數(shù),參數(shù)的類(lèi)型和順序與基類(lèi)中的虛函數(shù)原型完全相同。 1. 什么是純虛函數(shù)什么是抽象類(lèi)純虛函數(shù)是一個(gè)在基類(lèi)中說(shuō)明的虛函數(shù),它在該基類(lèi)中沒(méi)有定義,但要求在它的派生類(lèi)中根據(jù)需要對(duì)它進(jìn)行定義,或仍說(shuō)明為純虛函數(shù)。如果一個(gè)類(lèi)至少有一個(gè)純虛函數(shù),那么就稱這個(gè)類(lèi)為抽象類(lèi)。 7-12 DAA

56、DCC 13.         不對(duì),參數(shù)個(gè)數(shù)必須一樣。 14.76 15.This is c+book.第一個(gè)字符:T第16個(gè)字符:.第26個(gè)字符:數(shù)組下標(biāo)超界! 16.m=千米 17.#include <iostream>using namespace std;class twoDArray int a23;public: twoDArray() for(int i = 0; i <2; i +) for(int j = 0; j < 3

57、; j +) aij = 5; twoDArray(int b3) for(int i = 0; i <2; i +) for(int j = 0; j < 3; j +) aij = bij; void show(); twoDArray operator+(twoDArray n); twoDArray operator-(twoDArray n);void twoDArray:show() for(int i = 0; i <2; i +) for(int j = 0; j < 3; j +) cout << aij; cout << en

58、dl; twoDArray twoDArray:operator+(twoDArray n) twoDArray temp; for(int i = 0; i <2; i +) for(int j = 0; j < 3; j +) ij = aij + ij; return temp;twoDArray twoDArray:operator-(twoDArray n) twoDArray temp; for(int i = 0; i <2; i +) for(int j = 0; j < 3; j +) ij = aij - ij; return temp;int ma

59、in() int a23; for(int i = 0; i <2; i +) for(int j = 0; j < 3; j +) cin >> aij; twoDArray a1, a2(a), total, sub; total = a1 + a2; sub = a1 - a2; (); (); return 0; 18.#include <iostream>using namespace std;class twoDArray int a23;public: twoDArray() for(int i = 0; i <2; i +)

60、for(int j = 0; j < 3; j +) aij = 5; twoDArray(int b3) for(int i = 0; i <2; i +) for(int j = 0; j < 3; j +) aij = bij; void show(); friend twoDArray operator+(twoDArray m, twoDArray n); friend twoDArray operator-(twoDArray m, twoDArray n);void twoDArray:show() for(int i = 0; i <2; i +) fo

61、r(int j = 0; j < 3; j +) cout << aij; cout << endl; twoDArray operator+(twoDArray m, twoDArray n) twoDArray temp; for(int i = 0; i <2; i +) for(int j = 0; j < 3; j +) ij = ij + ij; return temp;twoDArray operator-(twoDArray m, twoDArray n) twoDArray temp; for(int i = 0; i <2;

62、i +) for(int j = 0; j < 3; j +) ij = ij - ij; return temp;int main() int a23; for(int i = 0; i <2; i +) for(int j = 0; j < 3; j +) cin >> aij; twoDArray a1, a2(a), total, sub; total = a1 + a2; sub = a1 - a2; (); (); return 0; 19.#include <iostream>using namespace std;class

63、complex double real, imag;public: complex(double re, double im) real = re; imag = im; friend complex operator+(complex a, complex b); void print();complex operator+(complex a, complex b) return complex + , + ;void complex:print() cout << "(" << real << "," <&

64、lt; imag << ")" << endl;int main() complex c1,; complex c2,; complex total = c1 + c2; (); return 0; 20.#include <iostream>using namespace std;const double PI = ;class Containerprotected: double r, d; 如果是圓柱體,r為底面半徑,d為高。如果是正方體,r為邊長(zhǎng), d為0。public: Container(double a, doub

65、le b = 0) r = a; d = b; virtual double serface() = 0; cerr和clog間的區(qū)別是         cerr不經(jīng)過(guò)緩沖區(qū)直接顯示錯(cuò)誤信息。而clog存放在緩沖區(qū),緩沖區(qū)滿或遇上endl時(shí)再輸出。  C+提供哪兩種控制輸入輸出格式的方法         一種是使用ios類(lèi)中的有關(guān)格式控制的流成員函數(shù)進(jìn)行格式控制,另一種是使用稱為操縱符的特殊類(lèi)型的函數(shù)控制。  C+進(jìn)行文件輸入輸出的基本過(guò)程是什么         首先創(chuàng)建一個(gè)流對(duì)象,然后將這個(gè)流對(duì)象與文件相關(guān)聯(lián),即打開(kāi)文件,此時(shí)才能進(jìn)行讀寫(xiě)操作,讀寫(xiě)操作完成后再關(guān)閉這個(gè)文件。  BCA #include <iostream>#include <iomanip>using

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論