




下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、1. #include class Testprivate:int x,y=20;public:Test(int i,int j)x=i,y=j;int getx()return x;int gety()return y;void main()Test mt(10,20);coutmt.getx()endl;coutmt.gety()endl;答案:int x,y=20;在類內(nèi)部不能對數(shù)據(jù)成員直接賦值。修改int x,y;2. #include class Testint x,y;public:fun(int i,int j)x=i;y=j;show()coutx=x;if(y)cout,y=
2、yendl;coutendl;void main()Test a;a.fun(1);a.show();a.fun(2,4);a.show();答案:int i,int j調(diào)用時,既有一個參數(shù),也有兩個參數(shù),且沒有重載,所以參數(shù)需要帶默認值。所以int i,int j錯誤。修改int i,int j0/注j只要有一個int類型的數(shù)據(jù)就行。3. #include class Aint i;public:virtual void fun()=0;A(int a)i=a;class B:public Aint j;public:void fun()coutB:fun()n; B(int m,int n
3、=0):A(m),j(n);void main()A *pa;B b(7);pa=&b;答案:B(int m,int n=0):A(m),j(n)因為基類是抽象類,不能被實例化,所以在派生類中不能調(diào)用初始化基類對象。所以B(int m,int n=0):A(m),j(n)錯誤,刪去A(m)。修改B(int m,int n=0):j(n)4. #include class Xpublic:int x;public:X(int x)coutx=xendl;X(X&t)x=t.x;coutt.xendl;void fun(X);void fun(X t)coutt.xendl;void main()
4、fun(X(10);答案:coutx=xx=x表達式的值要加括號。修改coutx=x)endl;5. #include #include class Baspublic:Bas(char *s=0)strcpy(name,s);void show();protected:char name20;Bas b;void show()coutname:endl;void main()Bas d2(hello);show();答案:void show();是普通函數(shù)不是成員函數(shù),但是要訪問類成員,需要定義為友元函數(shù)。修改friend void show();1. #include #inc
5、lude #include using namespace std;class Apublic:A(const char *na)strcpy(name,na);private:char name80;class B:public A public:B(const char *nm):A(nm)void show();void B:show() coutname:nameendl;void main() B b1(B);b1.show();答案:private:因為name如果是私有的,在派生類中無法訪問,而基類沒有提供成員函數(shù)來訪問name,所以更改name訪問權限為公有或保護,這樣對于派生
6、類來說是透明的。修改public:或protected:2. #include void f(int *a,int n)int i=0,j=0;int k=0;for(;in/2;i+)k=ai;ai=an-i-1;an-i-1=k;void show(int a,int n)for(int i=0;in;i+)coutai ;coutendl;void main()int p5;int i=0,n=5;for(;i5;i+)pi=i;f(*p,n);show(p,n);答案: 修改f(p,n);解析f(*p,n);f函數(shù)第一個參數(shù)是指針而調(diào)用時使用*p,*p表示p所指向的變量或?qū)ο螅皇堑刂?/p>
7、即不是指針。3. #include void main()int i(3),j(8);int * const p=&i;cout*pendl;p=&j;cout*pendl;答案:int * const p=&i;在指針變量前加const表示一個常指針即地址不能變化,它指向的變量不能改變且定義時必須設置指向變量或?qū)ο蟮牡刂贰P薷膇nt *p=&i;4. #include void main()int i,*p;i=10;*p=i;cout*pendl;答案:*p=i;指針即地址沒有被賦值。修改p=&i;5. #include class Aprivate:int x,y;public:void
8、 fun(int i,int j)x=i;y=j;void show()coutx yendl;void main()A a1;a1.fun(2);a1.show();答案:void fun(int i,int j)調(diào)用時有一個參數(shù),形參有兩個,可以使第二個帶默認值。修改void fun(int i,int j0)1. class ABCint a;public:ABC(int aa)a(aa);答案:ABC(int aa)a(aa)初始化列表格式錯誤。修改ABC(int aa):a(aa)2. #include class Atonint X,Y;protected:int zx,zy;pu
9、blic:void init(int i,int j)zx=i;zy=j;Aton(int i,int j,int n=0,int m=0)X=i,Y=j,zx=m,zy=n;void main()Aton A(25,20,3,5);A.init(5,9);coutA.X()endl;答案:int X,Y;因為X,Y都是私有的,在類外無法直接訪問。修改public:int X,Y;3. #include class Baspublic:Bas()coutBas constructendl;virtual void f()=0;class Dev:public Baspublic:Dev()co
10、utBas constructendl;virtual void f()coutDev:ff();答案:修改Bas *a;解析Bas *a=new Bas();抽象類不能被實例化,但可以聲明指針或引用,所以不能用new,因為new產(chǎn)生臨時對象。4. 以下程序?qū)崿F(xiàn)交換a,b變量的值,請用下橫線標出錯誤所在行并給出修改意見。#include void swap(int &a,int &b)a=a+b;b=a-b;a=a-b;void main()int a=19,b=15;couta=a,b=bendl;swap(&a,&b);couta=a,b=bendl;答案:swap(&a,&b);函數(shù)的形
11、參是變量的引用,調(diào)用時的實參應該是地址。修改swap(a, b);5. #include void main()int i(3),j(8);int * const p=&i;cout*pendl;p=&j;cout*pendl;答案:int * const p=&i;在指針變量前加const表示一個常指針即地址不能變化,它指向的變量不能改變且定義時必須設置指向變量或?qū)ο蟮牡刂?。修改int *p=&i;2. #include class Tprotected:int p;public:T(int m)p=m;void main() T a(10);couta.pendl;答案:修改public解
12、析protected保護類型的成員,不能在類外訪問。3. #include using namespace std;class Date;class Timepublic:Time(int h,int m,int s)hour=h,minute=m,sec=s;void show(Date & d);private:int hour,minute,sec;class Datepublic:Date(int m,int d,int y)month=m,day=d,year=y;void Time:show(Date &);private:int month,day,year;void Time:
13、show(Date & d)coutd.month -d.day-d.yearendl;couthour:minute:secendl;void main()Time t1(9,23,50);Date d1(12,20,2008);t1.show(d1);答案:void Time:show(Date &);成員函數(shù)作為友元函數(shù),要加friend。修改friend void Time:show(Date &);4. 輸出最小值,有一處錯誤。#include class Testint a,b;int getmin()return (ab?a:b);public:int c;void setVal
14、ue(int x1,int x2,int x3)a=x1;b=x2;c=x3;int GetMin();int Test:GetMin()int d=getmin();return (d=dc?d:c);void main()Test t1;t1.setValue(34,6,2);coutt1.getmin ()endl;答案:coutt1.getmin()endl;采用默認的訪問權限即私有的,在外部無法訪問。修改coutt1.GetMin()endl;5. 實現(xiàn)數(shù)值、字符串的交換。#include #include using namespace std;templatevoid Swap(
15、T& a,T& b)T temp;temp=a,a=b,b=temp;void main()int a=5,b=9;char s1=Hello,s2=hi;Swap(a,b);Swap(s1,s2);couta=a,b=bendl;couts1=s1,s2=s2endl;答案:char s1=Hello,s2=hi;使用Swap(s1,s2)調(diào)用交換的是地址。字符指針作實參,形參值發(fā)生改變,實參也就發(fā)生變化。修改char *s1=Hello,*s2=hi;1. #include class A private:int x;public:A(int i)x=i;A()x=0;friend int
16、 min(A&,A&);int min(A & a,A &b) return (a.xb.x)?a.x:b.x;void main() A a(3),b(5);couta.min(a,b)endl;答案:couta.min(a,b)endl;友元函數(shù)不是類成員,所以對象a不能使用a.min(a,b)這種方法。min就是一個普通的友元函數(shù)。修改coutmin(a,b)endl;2. #include class shapepublic:virtual int area()return 0;class rectangle:public shapepublic:int a, b;void setLe
17、ngth (int x, int y) a=x;b=y;int area() return a*b;void main()rectangle r;r.setLength(3,5);shape s1,*s2=&r;cout r.area() endl;s2=s1;cout s2.area()endl;答案:shape s1,*s2=r;指針使用錯誤。s是指針使用它指向?qū)ο蟮某蓡T有兩種方法,有下面兩行可知,使用的是引用。修改改為shape &s=r;3. 下面的類定義中有一處錯誤,請用下橫線標出錯誤所在行并給出修改意見。#include template class Aprivate:T x,y,
18、s;public:A(T a,T b)x=a,y=b;s=x+y;void show()coutx+y=sendl;void main() A add(10,100);add.show();答案: 修改A add(10,100);解析A add(10,100);類模板的使用,參數(shù)實例化后生成模板類。用類模板定義對象時要指定參數(shù)類型。4. 生成具有n個元素的動態(tài)數(shù)組。#include void main()int n;cinn;int an;a0=2;couta0endl;答案:int an;生成具有n個元素的動態(tài)數(shù)組,要使用new,所以int an;錯誤。修改int *a=new intn;5
19、. #include class Aint i;public:virtual void fun()=0;A(int a)i=a;class B:public Aint j;public:void fun()coutB:fun()n; B(int m,int n=0):A(m),j(n);void main()A *pa;B b(7);pa=&b;答案:B(int m,int n=0):A(m),j(n)因為基類是抽象類,不能被實例化,所以在派生類中不能調(diào)用初始化基類對象。所以B(int m,int n=0):A(m),j(n)錯誤,刪去A(m)。修改B(int m,int n=0):j(n)1
20、. #include #include #include using namespace std;class Apublic:A(const char *na)strcpy(name,na);private:char name80;class B:public A public:B(const char *nm):A(nm)void show();void B:show() coutname:nameendl;void main() B b1(B);b1.show();答案:private:因為name如果是私有的,在派生類中無法訪問,而基類沒有提供成員函數(shù)來訪問name,所以更改name訪問權限為公有或保護,這樣對于派生類來說是透明的。修改public:或protected:2. 下面的程序有錯誤,請修改。#include class Aprivate:int a;public:void func(B &);A(int i)a=i;class Bprivate:int b;friend void A:func(B &);public:B(int i)b=i;void A:func(B& r)a=r.b;coutaendl;void main() B bt(3);A at(10);at.func(bt);答案:
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 咖啡豆與茶葉知識培訓
- 大學生校園歌手大賽觀后感
- 湖北省武漢市常青聯(lián)合體2024-2025學年高二上學期期末聯(lián)考地理試題 含解析
- 商務往來文件處理規(guī)范
- 活動現(xiàn)場照片登記表
- 小學生思維導圖征文
- 供應鏈采購協(xié)議細則
- 人才需求及就業(yè)前景分析表
- 貝雷片租賃合同
- 年度項目工作計劃與執(zhí)行監(jiān)控報告
- 雙新背景下小學英語單元整體作業(yè)設計與優(yōu)化探索 論文
- 大學生勞動教育教程全套PPT完整教學課件
- GB/T 985.1-2008氣焊、焊條電弧焊、氣體保護焊和高能束焊的推薦坡口
- GB/T 15970.7-2000金屬和合金的腐蝕應力腐蝕試驗第7部分:慢應變速率試驗
- 中共一大會址
- 制度經(jīng)濟學:05團隊生產(chǎn)理論
- 作文格子紙(1000字)
- 刻度尺讀數(shù)練習(自制)課件
- 四年級下冊美術課件 4紙卷魔術|蘇少版
- 七年級數(shù)學蘇科版下冊 101 二元一次方程 課件
- ZL50裝載機工作裝置設計
評論
0/150
提交評論