




已閱讀5頁(yè),還剩45頁(yè)未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第4章答案1.概念填空題1.1 類定義的關(guān)鍵字是 class 。類的數(shù)據(jù)成員通常指定為 私有 成員。類的函數(shù)成員通常指定為 公有 成員,指定為 公有 的類成員可以在類對(duì)象所在域中的任何位置訪問它們,類的 私有和保護(hù) 只能被該類的成員函數(shù)或友元函數(shù)訪問。1.2類的訪問限定符包括 public、 private 和 protected 。類成員默認(rèn)的訪問方式是 private 。訪問限定符在類中 無 先后次序,各限定符 允許 (允許/不允許)多次出現(xiàn)。1.3 構(gòu)造函數(shù)的任務(wù)是 建立對(duì)象 。類中可以有 多 個(gè)構(gòu)造函數(shù),它們由 參數(shù) 區(qū)分。如果類說明中沒有給出構(gòu)造函數(shù),則C+編譯器會(huì)提供構(gòu)造函數(shù),該函數(shù) 不完成 (完成/不完成)對(duì)象初始化工作。1.4復(fù)制構(gòu)造函數(shù)的參數(shù)是 對(duì)象的復(fù)制 ,當(dāng)程序沒有給出復(fù)制構(gòu)造函數(shù)時(shí),編譯系統(tǒng)會(huì)提供 默認(rèn)復(fù)制構(gòu)造函數(shù) ,完成類對(duì)象的 復(fù)制 。復(fù)制構(gòu)造函數(shù)被調(diào)用情況有 3 種。1.5析構(gòu)函數(shù)在對(duì)象 釋放 時(shí)被自動(dòng)調(diào)用。類中沒有定義析構(gòu)函數(shù)時(shí),編譯系統(tǒng)會(huì)提供一個(gè)默認(rèn)的析構(gòu)函數(shù)。該函數(shù) 不完成 (完成/不完成)具體對(duì)象的清理工作。2. 簡(jiǎn)答題2.1 為什么說類與對(duì)象的概念是客觀世界的反映?2.2 簡(jiǎn)單解釋什么是面向?qū)ο蟪绦蛟O(shè)計(jì)的封裝性。2.3 引用作為函數(shù)參數(shù)時(shí)為什么能實(shí)現(xiàn)兩個(gè)實(shí)參之間的數(shù)據(jù)交換?為什么對(duì)應(yīng)實(shí)參不能為引用?為什么返回值為引用的函數(shù)可以作為左值?2.4 什么是默認(rèn)的構(gòu)造函數(shù)?默認(rèn)的構(gòu)造函數(shù)可以有多少個(gè)?2.5 復(fù)制構(gòu)造函數(shù)用于哪3個(gè)方面?2.6 為什么在友元函數(shù)的函數(shù)體內(nèi)訪問對(duì)象成員時(shí),必須用對(duì)象名加運(yùn)算符”.”再加對(duì)象成員名?2.7 類的靜態(tài)數(shù)據(jù)成員與函數(shù)中的靜態(tài)成員有何異同?2.8 類的成員函數(shù)在什么情況下應(yīng)該定義為私有的?這樣做的目的是什么?2.9 友元關(guān)系有何性質(zhì)?友元關(guān)系的優(yōu)點(diǎn)和缺點(diǎn)各有哪些?3.選擇題3.1 數(shù)據(jù)封裝就是將一組數(shù)據(jù)和與這組數(shù)據(jù)有關(guān)操作組裝在一起,形成一個(gè)實(shí)體,這實(shí)體也就是( B )。A類 B對(duì)象 C函數(shù)體 D數(shù)據(jù)塊3.2 類的實(shí)例化是指( B )。A定義類B創(chuàng)建類的對(duì)象C指明具體類D調(diào)用類的成員3.3下列說法中正確的是( B )。A類定義中只能說明函數(shù)成員的函數(shù)頭,不能定義函數(shù)體 B類中的函數(shù)成員可以在類體中定義,也可以在類體之外定義 C類中的函數(shù)成員在類體之外定義時(shí)必須要與類聲明在同一文件中 D在類體之外定義的函數(shù)成員不能操作該類的私有數(shù)據(jù)成員3.4有如下類定義:class sample int n;public:sample (int i=0):n(i) void setValue(int n0);;下列關(guān)于setValue成員函數(shù)的實(shí)現(xiàn)中,正確的是( B )。Asample:setValue(int n0)n=n0;Bvoid sample:setValue(int n0)n=n0;Cvoid setValue(int n0)n=n0;DsetValue(int n0)n=n0;3.5在下面的類定義中,錯(cuò)誤的語(yǔ)句是( C )。class sample public: sample(int val);/ sample( ); / private:int a=2.5; / public:sample( ); /; ABCD3.6類的構(gòu)造函數(shù)被自動(dòng)調(diào)用執(zhí)行的情況是在創(chuàng)建該類的(C)。 A成員函數(shù)時(shí) B數(shù)據(jù)成員時(shí) C對(duì)象時(shí) D友元函數(shù)時(shí)3.7(A)是析構(gòu)函數(shù)的特征。 A一個(gè)類中只能定義一個(gè)析構(gòu)函數(shù) B析構(gòu)函數(shù)名與類名不同 C析構(gòu)函數(shù)的定義只能在類體內(nèi) D析構(gòu)函數(shù)可以有一個(gè)或多個(gè)參數(shù)3.8 在下列函數(shù)原型中,可以作為類AA構(gòu)造函數(shù)的是( D )。 Avoid AA(int); Bint AA( ); CAA(int) const; DAA(int)3.9關(guān)于成員函數(shù)特征的下述描述中,(A)是錯(cuò)誤的。 A成員函數(shù)一定是內(nèi)聯(lián)函數(shù) B成員函數(shù)可以重載 C成員函數(shù)可以設(shè)置參數(shù)的默認(rèn)值 D成員函數(shù)可以是靜態(tài)的3.10不屬于成員函數(shù)的是(B )。 A靜態(tài)成員函數(shù) B友元函數(shù) C構(gòu)造函數(shù) D析構(gòu)函數(shù)3.11已知類A是類B的友元,類B是類C的友元,則(C )。 A類A一定是類C的友元 B類C一定是類A的友元 C類C的成員函數(shù)可以訪問類B的對(duì)象的任何成員 D類A的成員函數(shù)可以訪問類B的對(duì)象的任何成員3.12有如下類定義: class AAint a; public:int getRef( ) const return &a; /返回類型為int, return &a為地址int getValue( ) const return a; /void set(int n) consta=n; /常函數(shù)不能修改成員friend void show(AA aa) const couta=a;/常函數(shù)不能修改成員void h(int b) Test:b=b;/static int g( ) return a;/靜態(tài)函數(shù)要通過對(duì)象訪問成員private:int a;static int b;const int c;int Test:b=0;在標(biāo)注號(hào)碼的行中,能被正確編譯的是(C)。A B C D4寫出程序程序執(zhí)行結(jié)果。4.1#includeusing namespace std;class Test public:Test( ) n+=2; Test( ) n-=3;static int getNum( ) return n;private:static int n;int Test:n=1;int main( )Test* p = new Test;delete p;cout”n=”Test:getNum( )endl;return 0;n=04.2#includeusing namespace std;class AAint n;public:AA(int k):n(k)int get( ) return n;int get( ) const return n+1;int main( )AA a(5);const AA b(6);couta.get()”,”b.get();return 0;574.3#includeusing namespace std;class MyClass public:int number;void set(int i);int number=3;void MyClass:set (int i)number=i;void main( )MyClass my1;int number=10;my1.set(5);coutmy1.numberendl;my1.set(number);coutmy1.numberendl;my1.set(:number);coutmy1.number;51034.4#includeusing namespace std;class Testprivate:static int val;int a;public:static int func( );void sfunc(Test &r);int Test:val=200;int Test:func( )return val+;void Test:sfunc(Test &r)r.a=125;coutResult3=r.aendl;void main( )coutResult1=Test:func( )endl;Test a;coutResult2=a.func()endl;a.sfunc(a);Result1=200Result2=201Result1=1255.編程題5.1 構(gòu)造一個(gè)日期時(shí)間類(Timedate),數(shù)據(jù)成員包括年、月、日和時(shí)、分、秒,函數(shù)成員包括設(shè)置日期時(shí)間和輸出時(shí)間,其中年、月用枚舉類型,并完成測(cè)試(包括用成員函數(shù)和用普通函數(shù))。#include #include #include enum YRY2000,Y2001,Y2002,Y2003,Y2004,Y2005;/枚舉名必須是標(biāo)識(shí)符enum MTJan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec;class Timedateprivate:YR year;MT month;int date;int hh;int mm;int ss;public:Timedate()year=Y2000;month=Jan;date=1;hh=0;mm=0;ss=0;Timedate(YR a,MT b,int c)year=a;month=b;date=c;hh=12;mm=30;ss=0;void getdate(YR &,MT &,int &);/體會(huì)用引用的優(yōu)點(diǎn),一次可返回3個(gè)值void gettime(int &,int &,int &);void putdate(YR ,MT ,int );void puttime(int ,int ,int );void list();void Timedate:getdate(YR &y,MT &m,int &d)y=year;m=month;d=date;void Timedate:gettime(int &a,int &b,int &c)a=hh;b=mm;c=ss;void Timedate:putdate(YR a,MT b,int c)year=a;month=b;date=c;void Timedate:puttime(int a,int b,int c)hh=a;mm=b;ss=c;void Timedate:list()/成員函數(shù)coutyear/month/date :;switch(year)case Y2000:cout2000;break;case Y2001:cout2001;break;case Y2002:cout2002;break;case Y2003:cout2003;break;case Y2004:cout2004;break;case Y2005:cout2005;break;switch(month)/,case Jan:cout/Jan;break;case Feb:cout/Feb;break;case Mar:cout/Mar;break;case Apr:cout/Apr;break;case May:cout/May;break;case Jun:cout/Jun;break;case Jul:cout/Jul;break;case Aug:cout/Aug;break;case Sep:cout/Sep;break;case Oct:cout/Oct;break;case Nov:cout/Nov;break;case Dec:cout/Dec;break;cout/dateendl;couthour:minite:second :;couthh:mm:ssendl;void show(Timedate &td)/普通函數(shù),體會(huì)兩者的不同YR year;MT month;int date,hh,mm,ss;td.getdate(year,month,date);td.gettime(hh,mm,ss);coutyear/month/date :;switch(year)case Y2000:cout2000;break;case Y2001:cout2001;break;case Y2002:cout2002;break;case Y2003:cout2003;break;case Y2004:cout2004;break;case Y2005:cout2005;break;switch(month)/,case Jan:cout/Jan;break;case Feb:cout/Feb;break;case Mar:cout/Mar;break;case Apr:cout/Apr;break;case May:cout/May;break;case Jun:cout/Jun;break;case Jul:cout/Jul;break;case Aug:cout/Aug;break;case Sep:cout/Sep;break;case Oct:cout/Oct;break;case Nov:cout/Nov;break;case Dec:cout/Dec;break;cout/dateendl;couthour:minite:second :;couthh:mm:ssendl;int main(int argc, char* argv)Timedate A(Y2004,Mar,3),B;A.list();B.list();B.putdate(Y2005,Oct,18);B.puttime(17,30,00);B.list();show(B);return 0;5.2 定義一個(gè)日期類Date,具有年月日等數(shù)據(jù)成員,顯示日期、加減天數(shù)等函數(shù)成員。注意需要考慮閏年。#include using namespace std;class Dateint year,month,day;static const int days;bool LeapYear();bool EndofMonth();public:Date(int=1900,int=1,int =1);void Increment(int );void Decrement(int);void SetDate(int,int,int);void Print();const int Date:days=0,31,28,31,30,31,30,31,31,30,31,30,31;Date:Date(int y,int m,int d)SetDate(y,m,d);void Date:SetDate(int y,int m,int d)year=(y=1900 & y=1 &m=1 & d=1 & d=daysmonth)?d:1;bool Date:LeapYear()return (year%400 = 0) | (year%4=0 & year%100!=0)? true:false;bool Date:EndofMonth()if(month=2 & LeapYear()return day=29;elsereturn day=daysmonth;void Date:Increment(int n)int i;for(i=1;i=n;i+)if(EndofMonth() & month=12)year+;month=day=1;else if(EndofMonth()month+;day=1;elseday+;void Date:Decrement(int n)int i;for(i=1;i=n;i+)if(day=1)if(month=1)year-; month=12; day=31;else if(month=3)day=LeapYear()?29:28; month=2;elseday=days-month;elseday-;void Date:Print()coutyear-month -day endl;void main()Date d1(2005,1,4),d2(2004,12,27);d1.Print();d1.Decrement(4);d1.Print();d2.Print();d2.Increment(70);d2.Print();5.3 定義一個(gè)圓類(Circle),屬性為半徑(radius)、圓周長(zhǎng)和面積,操作為輸入半徑并計(jì)算周長(zhǎng)、面積,輸出半徑、周長(zhǎng)和面積。要求定義構(gòu)造函數(shù)(以半徑為參數(shù),默認(rèn)值為0,周長(zhǎng)和面積在構(gòu)造函數(shù)中生成)和復(fù)制構(gòu)造函數(shù)。#include const double PI=3.1415;using namespace std;class Circledouble radius,length,area;public:Circle(double r=0)setr(r);length=2*PI*radius;area=PI*radius*radius;Circle(Circle& c)radius=c.radius ;length=c.length ;area=c.area ;void print()coutradius= radiusendl;coutlength= lengthendl;coutarea= areaendl;void setr(double r)radius=r;int main()Circle c1(10),c2(c1);c1.print();c2.print();return 0;5.4 設(shè)計(jì)一個(gè)學(xué)校在冊(cè)人員類(Person)。數(shù)據(jù)成員包括身份證號(hào)(IdPerson)、姓名(Name)、性別(Sex)、生日(Birth-day)和家庭住址(HomeAddress)。成員函數(shù)包括人員信息的錄入和顯示,還包括構(gòu)造函數(shù)與復(fù)制構(gòu)造函數(shù)。設(shè)計(jì)一個(gè)合適的初始值。#include #include const double PI=3.1415;using namespace std;struct dateint year,month,day;class Personchar ID12;char Name10;char Sex3;date Birth;char HomeAdd20;public:Person()ID0=Name0=Sex0=HomeAdd0=0;Birth.year=Birth.month=Birth.day=0;Person(char id,char name,char sex,date birth,char homeadd)strcpy(ID,id);strcpy(Name,name);strcpy(Sex,sex);Birth=birth;strcpy(HomeAdd,homeadd);Person(Person& p)strcpy(ID,p.ID);strcpy(Name,p.Name);strcpy(Sex,p.Sex);Birth=p.Birth;strcpy(HomeAdd,p.HomeAdd);void setID(char id)strcpy(ID,id);void setName(char name)strcpy(Name,name);void setSex(char sex)strcpy(Sex,sex);void setBirth(date birth)Birth=birth;void setHome(char homeadd)strcpy(HomeAdd,homeadd);void print()coutID= ID,Name= Name,Sex= Sex,;coutBirth= Birth.year-Birth.month-Birth.day,;coutHomeAddendl;int main()date birth;birth.year =1991;birth.month =6;birth.day =12;Person p1(,陳建華,男,birth,中吳大道1801號(hào));p1.print ();Person p2;p2.print ();return 0 ;5.5設(shè)計(jì)如下類:1)建立一個(gè)Point類,表示平面中的一個(gè)點(diǎn);建立一個(gè)Line類,表示平面中的一條線端,內(nèi)含兩個(gè)Point類的對(duì)象;建立Triangle類,表示一個(gè)三角形,內(nèi)含三個(gè)Line類的對(duì)象構(gòu)成一個(gè)三角形。2)設(shè)計(jì)三個(gè)類的相應(yīng)的構(gòu)造函數(shù)、復(fù)制構(gòu)造函數(shù),完成初始化和對(duì)象復(fù)制3)設(shè)計(jì)Triangle類的成員函數(shù)完成三條邊是否能構(gòu)成三角形的檢驗(yàn)和三角形面積計(jì)算,面積顯示。#include #include const double PI=3.1415;using namespace std;class Pointdouble X,Y;public:Point(double x=0,double y=0)X=x;Y=y;Point(Point& p)X=p.X ; Y=p.Y ;double getx()return X;double gety()return Y;class LinePoint pstart,pend;double length;public:Line(Point p1,Point p2):pstart(p1),pend(p2)setl();Line(Line& l):pstart(l.pstart),pend(l.pend)setl();double getl()return length;void setl()double deltax,deltay;deltax=pstart.getx()-pend.getx();deltay=pstart.gety()-pend.gety();length=sqrt(deltax*deltax+deltay*deltay);class TrangleLine lfirst,lsecond,lthird;double area;public:Trangle(Line lf,Line ls,Line lt):lfirst(lf),lsecond(ls),lthird(lt)area=0;bool check()double l1,l2,l3;l1=lfirst.getl();l2=lsecond.getl();l3=lthird.getl();return l1l2+l3 & l2l1+l3 & l3l1+l2;void calarea()if (check()double s;double l1,l2,l3;l1=lfirst.getl();l2=lsecond.getl();l3=lthird.getl();s=(l1+l2+l3)/2.0;area=sqrt(s*(s-l1)*(s-l2)*(s-l3);void print()coutarea= areaendl;int main()Point p1,p2(4,0),p3(0,3);Line l1(p1,p2),l2(p1,p3),l3(p2,p3);Trangle t(l1,l2,l3);if(t.check ()t.calarea();t.print();return 0;5.6建立一個(gè)分?jǐn)?shù)類Fraction。分?jǐn)?shù)類的數(shù)據(jù)成員包括分子和分母。成員函數(shù)包括構(gòu)造函數(shù)、復(fù)制構(gòu)造函數(shù)。構(gòu)造函數(shù)要對(duì)初始化數(shù)據(jù)進(jìn)行必要的檢查(分母不能為0)。將分?jǐn)?shù)顯示成 “a/b”形式的輸出函數(shù)。成員函數(shù)包括約分、通分、加、減、乘、除、求倒數(shù)、比較大小、顯示和輸入。完成以上所有成員函數(shù)并在主函數(shù)中進(jìn)行檢驗(yàn)。#include using namespace std;class Fractionint numerator,denominator;int common_divisor();/計(jì)算最大公約數(shù)void contracted();/分?jǐn)?shù)化簡(jiǎn)public: Fraction(int=0,int=1);Fraction(Fraction&);Fraction Add(Fraction);Fraction Sub(Fraction);Fraction Mul(Fraction);Fraction Div(Fraction);bool operator=(Fraction);bool operator=(Fraction);bool operator=(Fraction);bool operator=(f);bool operator(Fraction f)return !(operator=(f);bool operator!=(Fraction f)return !(operator=(f);Fraction Updown();void Set(int=0,int=1);void disp()coutfraction= numerator/denominatorendl;Fraction:Fraction(int num,int deno)Set(num, deno);Fraction:Fraction(Fraction& f)numerator=f.numerator;denominator=f.denominator;Fraction Fraction:Add(Fraction f)Fraction Temp(numerator*f.denominator+f.numerator*denominator,denominator*f.denominator);Temp.contracted();return Temp;Fraction Fraction:Sub(Fraction f)Fraction Temp(numerator*f.denominator-f.numerator*denominator,denominator*f.denominator);Temp.contracted();return Temp;Fraction Fraction:Mul(Fraction f)Fraction Temp(numerator*f.numerator,denominator*f.denominator);Temp.contracted();return Temp;Fraction Fraction:Div(Fraction f)Fraction Temp(f.denominator,f.numerator );Temp=Mul(Temp);Temp.contracted();return Temp;int Fraction:common_divisor()int residue;int dividend=numerator,divisor=denominator; while(residue=dividend%divisor)dividend=divisor;divisor=residue;return divisor;void Fraction:contracted()int residue=common_divisor();numerator/=residue;denominator/=residue;if(denominator=(Fraction f)Fraction Temp=Sub(f);return (Temp.numerator =0);bool Fraction:operator=(Fraction f)Fraction Temp=Sub(f);return (Temp.numerator =0);bool Fraction:operator=(Fraction f)Fraction Temp=Sub(f);return (Temp.numerator =0);Fraction Fraction:Updown()int p;Fraction Temp;if (numerator!=0)p=numerator;numerator=denominator;denominator=p;Temp.numerator=numerator;Temp.denominator=denominator;return Temp;void Fraction:Set(int num,int deno)if(deno!=0)numerator=num;denominator=deno;contracted();void main()Fraction f1(1,3),f2=2,f3,f4,f5(2,8),f6,f7(8,3),f8(8,3),f9(1,4);f4=f1.Add(f2);f4.disp();f6=f2.Div(f5).Div(f7);f6.disp();f5.disp();f6=f1.Sub(f2);f6.disp();f9.Set(5,3);f9.disp();f9.Updown();f9.disp();cout(f7=f8)endl;cout(f7=f1)endl;cout(f5=f9)endl;coutf2)endl;第5章答案1.概念填空題1.1運(yùn)算符重載是對(duì)已有的運(yùn)算符賦予 多重 含義,使同一個(gè)運(yùn)算符在作用于 不同類型 對(duì)象時(shí)導(dǎo)致不同的行為。運(yùn)算符重載的實(shí)質(zhì)是 函數(shù)重載 ,是類的 多態(tài)性 特征。1.2可以定義一種特殊的類型轉(zhuǎn)換函數(shù),將類的對(duì)象轉(zhuǎn)換成基本數(shù)據(jù)類型的數(shù)據(jù)。但是這種類型轉(zhuǎn)換函數(shù)只能定義為一個(gè)類的 成員 函數(shù)而不能定義為類的友元函數(shù)。類類型轉(zhuǎn)換函數(shù)既沒有 參數(shù) ,也不顯式給出 返回類型 。類類型函數(shù)中必須有 return 表達(dá)式 的語(yǔ)句返回函數(shù)值。一個(gè)類可以定義 多個(gè) 類類型轉(zhuǎn)換函數(shù)。1.3運(yùn)算符重載時(shí)其函數(shù)名由 operator運(yùn)算符 構(gòu)成。成員函數(shù)重載雙目運(yùn)算符時(shí),左操作數(shù)是 對(duì)象 ,右操作數(shù)是 函數(shù)參數(shù) 。2.簡(jiǎn)答題2.2簡(jiǎn)述運(yùn)算符重載的規(guī)則。2.2簡(jiǎn)述重載單目運(yùn)算符+、-,前置和后置時(shí)的差別。2.3 C+中重運(yùn)算符是否都可以重載?是否都可以重載成類的成員函數(shù)?是否都可以重載成類的友元函數(shù)?2.4 構(gòu)造函數(shù)作為類型轉(zhuǎn)換函數(shù)的條件是什么。3選擇題3.1在下列運(yùn)算符中,不能重載的是(B) A.! B. sizeof C. new D. delete3.2 不能用友員函數(shù)重載的是(A)。 A.= B.= C.= D.+3.3下列函數(shù)中,不能重載運(yùn)算符的函數(shù)是(B)。 A.成員函數(shù) B.構(gòu)造函數(shù) C.普通函數(shù) D.友員函數(shù)3.4如果表達(dá)式+i*k時(shí)中的”+”和”*”都是重載的友元運(yùn)算符,則采用運(yùn)算符函數(shù)調(diào)用格式,該表達(dá)式還可表示為(B)。 Aoperator*(i.operator+(),k)Boperator*(operator+(i),k) Ci.operator+().operator*(k) Dk.operator*(operator+(i)3.5已知在一個(gè)類體中包含如下函數(shù)原型:VOLUME operator-(VOLUME)const;下列關(guān)于這個(gè)函數(shù)的敘述中,錯(cuò)誤的是(B )。 A這是運(yùn)算符-的重載運(yùn)算符函數(shù) B這個(gè)函數(shù)所重載的運(yùn)算符是一個(gè)一元運(yùn)算符 C這是一個(gè)成員函數(shù) D這個(gè)函數(shù)不改變數(shù)據(jù)成員的值 3.6在表達(dá)式xy*z中,+是作為成員函數(shù)重載的運(yùn)算符,*是作為非成員函數(shù)重載的運(yùn)算符。下列敘述中正確的是(C )。 Aoperator+有兩個(gè)參數(shù),operator*有兩個(gè)參數(shù) Boperator+有兩個(gè)參數(shù),operator*有一個(gè)參數(shù) Coperator+有一個(gè)參數(shù),operator*有兩個(gè)參數(shù) Doperator+有一個(gè)參數(shù),operator*有一個(gè)參數(shù)4.寫出下列程序運(yùn)行結(jié)果4.1#include #using namesoace std;class T public: T( )a=0; b=0; c=0; T( int i,int j,int k) a=i; b =j;c=k; void get( int &i,int &j,int &k) i=a; j=b; k=c; T operator *(T obj); private: int a,b,c; ; T T:operator *(T obj) T tempobj; tempobj.a=a * obj.a; tempobj.b=b * obj.b; tempobj.c=c * obj.c; return tempobj; int main()T obj1( 1,2,3),obj2( 5,5,5),obj3; int a,b,c; obj3=obj1 * obj2; obj3.get( a, b, c); cout”(obj1 * obj2):t” ”a=”at“b=”b t”c=”ctendl; (obj2 * obj3 ).get( a, b, c); cout“(obj2obj3):t” “a=”at”b=”bt“c=”ctendl; (obj1*obj2):a=5b=10c=15(obj2*obj3):a=25b=50c=755編程題51將第4章練習(xí)5.7的分?jǐn)?shù)類Fraction的算術(shù)運(yùn)算改寫成運(yùn)算符重載函數(shù),使分?jǐn)?shù)類能實(shí)現(xiàn)通常的分?jǐn)?shù)+、-、*、/等運(yùn)算。#include using namespace std;class Fractionint numerator,denominator;int common_divisor();/計(jì)算最大公約數(shù)void contracted();/分?jǐn)?shù)化簡(jiǎn)public: Fraction(int=0,int
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 產(chǎn)業(yè)園區(qū)入駐合同協(xié)議
- 關(guān)于推進(jìn)跨部門合作項(xiàng)目的工作計(jì)劃
- 關(guān)于采購(gòu)流程的往來文書說明
- 商務(wù)會(huì)議溝通要點(diǎn)及會(huì)議紀(jì)要模板
- 健康管理平臺(tái)的構(gòu)建及運(yùn)營(yíng)規(guī)劃
- 機(jī)器人智能化生產(chǎn)線建設(shè)委托代理合同
- 交通物流調(diào)度管理系統(tǒng)建設(shè)方案
- 房屋預(yù)約買賣合同
- 木材原木購(gòu)銷合同
- 2025年版《認(rèn)識(shí)大熊貓》課件發(fā)布
- 城市軌道交通乘客服務(wù)課件(完整版)
- 圍手術(shù)期肺部感染
- 北師大版語(yǔ)文選修《蕭蕭》ppt課件1
- 大學(xué)生職業(yè)素養(yǎng)課件-5第五單元學(xué)會(huì)有效溝通-PPT課件
- 煤礦2021年重大安全風(fēng)險(xiǎn)分析預(yù)判防控報(bào)告全文
- 《傷逝》_魯迅課件__大學(xué)語(yǔ)文(基礎(chǔ)教育)
- 《談骨氣》課文閱讀(共2頁(yè))
- 高考成績(jī)證明模板
- 蝴蝶蘭PPT課件
- 賓館做房記錄表
- 工業(yè)管道檢查報(bào)告
評(píng)論
0/150
提交評(píng)論