實(shí)驗(yàn)2派生類與繼承_第1頁(yè)
實(shí)驗(yàn)2派生類與繼承_第2頁(yè)
實(shí)驗(yàn)2派生類與繼承_第3頁(yè)
實(shí)驗(yàn)2派生類與繼承_第4頁(yè)
實(shí)驗(yàn)2派生類與繼承_第5頁(yè)
已閱讀5頁(yè),還剩5頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、精選優(yōu)質(zhì)文檔-傾情為你奉上實(shí)驗(yàn)2 派生類與繼承實(shí)驗(yàn)課程名:面向?qū)ο蟪绦蛟O(shè)計(jì)(C+)專業(yè)班級(jí): 計(jì)算機(jī)應(yīng)用技術(shù) 學(xué)號(hào): 5 姓名: 熊柳強(qiáng) 實(shí)驗(yàn)時(shí)間: 2012-10-9 實(shí)驗(yàn)地點(diǎn): k4-207 指導(dǎo)教師: 謝晉 一、實(shí)驗(yàn)?zāi)康暮鸵?1) 掌握派生類的聲明方法和派生類構(gòu)造函數(shù)的定義方法。(2) 掌握不同繼承方式下,基類成員在派生類中的訪問屬性。(3) 掌握在繼承方式下,構(gòu)造函數(shù)與析構(gòu)函數(shù)的執(zhí)行順序與構(gòu)造規(guī)則。(4) 學(xué)習(xí)虛基類在解決二義性問題中的作用。二、實(shí)驗(yàn)內(nèi)容1、源程序代碼:/test4_1.cpp#include<iostream>using namespace std;cl

2、ass Basepublic:void setx(int i)x=i;int getx()return x;public:int x;class Derived:public Basepublic:void sety(int i)y=i;int gety()return y;void show()cout<<"Base:x="<<x<<endl;public:int y;int main()Derived bb;bb.setx(16);bb.sety(25);bb.show();cout<<"Base:x="

3、;<<bb.x<<endl;cout<<"Derived:y="<<bb.y<<endl;cout<<"Base:x="<<bb.getx()<<endl;cout<<"Derived:y="<<bb.gety()<<endl;return 0;運(yùn)行結(jié)果:(1) 寫出程序的運(yùn)行結(jié)果。(2) 按以下要求,對(duì)程序進(jìn)行修改后再調(diào)試,指出調(diào)試中出錯(cuò)的原因。將基類Base中數(shù)據(jù)成員x的訪問權(quán)限改為private時(shí),

4、會(huì)出現(xiàn)哪些錯(cuò)誤?為什么?在派生類中不能使用基類的數(shù)據(jù)成員。因?yàn)閿?shù)據(jù)成員為私有的。將基類Base中數(shù)據(jù)成員x的訪問權(quán)限改為protected時(shí),會(huì)出現(xiàn)哪些錯(cuò)誤?為什么?主函數(shù)中不能訪問基類中的保護(hù)數(shù)據(jù)成員。因?yàn)閿?shù)據(jù)成員被保護(hù)了。在源程序的基礎(chǔ)上,將派生類Derived的繼承方式改為private時(shí),會(huì)出現(xiàn)哪些錯(cuò)誤?為什么?Setx、x、getx不能訪問Base中的共有數(shù)據(jù)成員。因?yàn)榕缮^承為是由繼承。在源程序的基礎(chǔ)上,將派生類Derived的繼承方式改為protected時(shí),會(huì)出現(xiàn)哪些錯(cuò)誤?為什么?和上面的問題一樣。2、 源程序代碼:#include<iostream>using n

5、amespace std;class Personpublic:void xinxi()cin>>stu_no;cin>>name;cin>>sex;cin>>age;void show()cout<<"編號(hào):"<<stu_no<<endl;cout<<"姓名:"<<name<<endl;cout<<"性別:"<<sex<<endl;cout<<"年齡:&qu

6、ot;<<age<<endl;private:int stu_no;char name15;char sex3;int age;class Student:public Personpublic:void shuru1()cin>>system;cin>>score;void show1()cout<<"院系:"<<system<<endl;cout<<"成績(jī):"<<score<<endl;private:float score;cha

7、r system15;class Teacher:public Personpublic:void shuru2()cin>>postion;cin>>part;void show2()cout<<"職稱:"<<postion<<endl;cout<<"部門:"<<part<<endl;private:char postion20;char part56;void main()Student A;A.xinxi();A.show();A.shuru1();A.

8、show1();Teacher B;B.xinxi();B.show();B.shuru2();B.show2(); 運(yùn)行結(jié)果:3、源程序代碼: (1) 閱讀、編輯、編譯、調(diào)試和運(yùn)行以下程序,并寫出程序的運(yùn)行結(jié)果。/test4_3_1.cpp#include<iostream>#include<string>using namespace std;class MyArraypublic:MyArray(int leng);MyArray();void Input();void Display(string);protected:int *alist;int length

9、;MyArray:MyArray(int leng)if(leng<=0)cout<<"error length"exit(1);alist=new int leng;length=leng;if(alist=NULL)cout<<"assign failure"exit(1);cout<<"MyArray類對(duì)象已創(chuàng)建。"<<endl;MyArray:MyArray()delete alist;cout<<"MyArray類對(duì)象被撤銷。"<&l

10、t;endl;void MyArray:Display(string str)int i;int *p=alist;cout<<str<<length<<"個(gè)整數(shù):"for(i=0;i<length;i+,p+)cout<<*p<<" "cout<<endl;void MyArray:Input()cout<<"請(qǐng)鍵盤輸入"<<length<<"個(gè)整數(shù):"int i;int *p =alist;for(

11、i=0;i<length;i+,p+)cin>>*p;int main()MyArray a(5);a.Input();a.Display("顯示已輸入的");return 0; 運(yùn)行結(jié)果:(2) 聲明一個(gè)類SortArray繼承類MyArray,在該類中定義一個(gè)函數(shù),具有將輸入的整數(shù)從小到大進(jìn)行排序的功能。class SortArray:public MyArraypublic:void Sort();SortArray(int leng):MyArray(leng)cout<<"SortArray類對(duì)象已創(chuàng)建。"<

12、<endl;virtual SortArray();SortArray:SortArray()cout<<"SortArray類對(duì)象被撤銷。"<<endl;void SortArray:Sort()int i,j;int min,temp;int a5;int *p=alist;for(i=0;i<length;i+,p+)ai=*p;for(i=0;i<4;i+)min=i;for(j=i;j<5;j+,p+)if(amin>aj) min=j;temp=ai;ai=amin;amin=temp;p=alist;for

13、(i=0;i<length;i+,p+)*p=ai;for(i=0;i<length;i+,p+)p=alist;int main()SortArray s(5);s.Input();s.Display("顯示排序以前的");s.Sort();s.Display("顯示排序以后的");return 0;運(yùn)行結(jié)果:(3)聲明一個(gè)類ReArray繼承類MyArray,在該類中定義一個(gè)函數(shù),具有將輸入的整數(shù)進(jìn)行倒置的功能。class ReArray:public MyArraypublic:void reverse();ReArray(int le

14、ng);virtual ReArray();void ReArray:reverse()int i,temp;int *p=alist;int b5;for(i=0;i<length;i+,p+)bi=*p;for(i=0;i<=length/2;i+,p+)temp=bi;bi=blength-i-1;blength-i-1=temp;p=alist-1;for(i=0;i<length;i+,p+)*p=bi;for(i=0;i<length/2;i+,p+)p=alist-1;ReArray:ReArray()cout<<"ReArray類對(duì)

15、象被撤銷。"<<endl;ReArray:ReArray(int leng):MyArray(leng)cout<<"ReArray類對(duì)象已創(chuàng)建。"<<endl;int main()ReArray s(5);s.Input();s.Display("顯示倒置以前的");s.reverse();s.Display("顯示倒置以后的");return 0;運(yùn)行結(jié)果:(4) 聲明一個(gè)類AverArray繼承類MyArray,在該類中定義一個(gè)函數(shù),具有求輸入的整數(shù)平均值的功能。class Aver

16、Array:public MyArraypublic:AverArray(int leng);AverArray();double Aver();AverArray:AverArray(int leng):MyArray(leng)cout<<"AverArray類對(duì)象已創(chuàng)建。"<<endl;AverArray:AverArray()delete alist;cout<<"AverArray類對(duì)象被撤銷。"<<endl;double AverArray:Aver()int i,c5;double ave=0

17、,sum=0;int *p=alist;for(i=0;i<length;i+,p+)ci=*p;for(i=0;i<length;i+,p+)sum+=ci;ave=sum/length;p=alist;for(i=0;i<length;i+,p+)*p=ave;for(i=0;i<length;i+,p+)p=alist;return ave;int main()AverArray s(5);s.Input();s.Display("輸入的");cout<<"5個(gè)數(shù)相加后的平均值:"<<s.Aver();print

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論