C实验报告-实验4继承与派生.doc_第1页
C实验报告-实验4继承与派生.doc_第2页
C实验报告-实验4继承与派生.doc_第3页
C实验报告-实验4继承与派生.doc_第4页
C实验报告-实验4继承与派生.doc_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

实验4 继承与派生一、实验目的和要求(1)掌握派生类的定义方法和派生类构造函数的定义方法。(2)掌握不同继承方式的情况下,基类成员在派生类中的访问权限。(3)掌握在多继承方式的情况下,构造函数与析构函数的调用时机与顺序。二、实验内容和原理(1)实验指导书P86 12任选一题。(2)实验指导书P89 34任选一题。三、实验环境联想计算机,Windows XP操作系统,Visual C+ 6.0四、算法描述及实验步骤(1)输入源程序。(2)检查程序有无错误(包括语法错误和逻辑错误),有则改之。(3)编译和连接,仔细分析编译信息,如有错误应找出原因并改正之。(4)运行程序,分析结果,在原有程序得出正确结果后,修改程序,将其改写为在类模板外定义,再按第(3)步骤运行。(5)将调试好的程序保存在自己的用户目录中,文件名自定。五、调试过程(1)2(2)4六、实验结果(1)2(2)4七、总结(1)掌握构造函数和析构函数的定义方法(2)构造函数调用顺序:先调用所有基类的构造函数,然后调用派生类的构造函数;(3)析构函数调用顺序:先调用派生类的析构函数,然后调用基类的析构函数,其顺序正好与构造函数调用顺序相反。八、附录:(1)代码如下#includeusing namespace std;class Base1public:Base1()coutconstructing Base1endl;Base1()coutdestructing Base1endl;class Base2public:Base2()coutconstructing Base2endl;Base2()coutdestructing Base2endl;class Derived1:public Base1,virtual public Base2public:Derived1()coutconstructing Derived1endl;Derived1()coutdestructing Derived1endl;class Derived2:public Base1,virtual public Base2public:Derived2()coutconstructing Derived2endl;Derived2()coutdestructing Derived2endl;class Derived3:public Derived1,virtual public Derived2public:Derived3()coutconstructing Derived3endl;Derived3()coutdestructing Derived3endl;int main()Derived3 obj;return 0;(2)4代码如下#includeusing namespace std;const double PI=3.14;class Shapepublic:double area()constreturn 0.0;void display();class TwoDimShape:virtual public Shape;class ThreeDimShape:virtual public Shape;class Circle:public TwoDimShapepublic:Circle(double myr)R=myr;double area()constreturn PI*R*R;void display()coutArea of circle is ;private:double R;class Rectangle:public TwoDimShapepublic:Rectangle(double myl,double myw)L=myl;W=myw;double area()constreturn L*W;void display()coutArea of rectangle is;private:double L,W;class Cylinder:public ThreeDimShapepublic:Cylinder(double myr,double myh)R=myr;H=myh;double area()constreturn 2*PI*R*(H+R);void display()coutsuperficial area of cylinder is;private:double R,H;class Cube:public ThreeDimShapepublic:Cube(double myl,double myw,double myh)L=myl;W=myw;H=myh;double area()const return 2*(L*W+L*H+W*H);void display()coutSuperficial area of rectangularparallelepied is ;private:double L,W,H;int main()Circle c(3.0); double area(); area=c.area(); c.display(); coutareaendl; Rectangle rec(4.0,5.0); area=rec.area(); rec.display(); coutareaendl; Cylinder cy(3.0,4.0);

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论