資源描述:
《實驗三 構造函數和析構函數》由會員上傳分享,免費在線閱讀,更多相關內容在教育資源-天天文庫。
1、實驗三、構造函數和析構函數一、實驗目的1.掌握聲明類的方法,類和類的成員的概念以及定義對象的方法。2.初步掌握用類和對象編制基于對象的程序。3.學習檢查和調試基于對象的程序。4.掌握類的構造函數和析構函數的概念和使用方法。5.掌握對象數組、對象的指針及其使用方法。二、實驗內容1.檢查下面的程序,找出其中的錯誤,并改正之。然后上機調試,使之能正常運行。(1)#includeusingnamespacestd;classA{public:A(inti=0){m=i;}//構造函數不
2、要返回類型名voidshow(){cout<usingnamespacestd;classX{private:inta=0;//私有成員不允許賦初值int&b;constintc;voidsetA(int
3、i){a=i;}X(inti){a=i;}public:intX(){a=b=0;}//構造函數無返回值X(inti,intj,intk){a=i;b=j;c=k;}setC(intk)const{c=c+k;}//成員函數沒有標明返回值類型.};intmain(){Xx1;Xx2(2)?;//私有成員函數不可被外界訪問.Xx3(1,2,3)?;x1.setA(3)?;//私有成員函數不可被外界訪問.return0?;}改正后的程序:#includeusingnamespace
4、std;classX{private:inta;intb;intc;voidsetA(inti){a=i;}X(inti){a=i;}public:X(){a=b=0;}X(inti,intj,intk){a=i;b=j;c=k;}voidsetC(intk){c=c+k;}};intmain(){Xx1;Xx3(1,2,3);return0;}2.請先閱讀下面的程序,寫出程序運行的結果,然后再上機運行程序,驗證自己分析的結果是否正確。(1)#includeusingnames
5、pacestd;classtest{public:test();intgetint(){returnnum;}floatgetfloat(){returnfl;}~test();private:intnum;floatfl;};test::test(){cout<<"Initalizingdefault"<6、array[1].getint()<<""<usingnamespacestd;#includeclassX{public:X(intx1,char*x2,floatx3):a(x1),c(x3
7、){b=newchar[sizeof(x2)+1];strcpy(b,x2);}X():a(0),b("X::X()"),c(10){}X(intx1,char*x2="X::X(....)",intx3=10):a(x1),b(x2),c(x3){}X(constX&other){a=other.a;b="X::X(constX&other)";c=other.c;}voidprint(){cout<<"a="<8、ivate?:inta;char*b;floatc;};intmain(){X*A=newX(4,"X::X(int,char,float)",32);XB,C(10),D(B);A->print();B.print();C.print();D.print();return0;}結果;//a=4b=X::X(int,char,float)c=32//a=0b=X::X()c=10//a=10b=X::X(….)c=10//a=0b=X::X(constX&other)c=103.在