收藏 分销(赏)

C实验报告-实验4继承与派生.doc

上传人:綻放 文档编号:8915171 上传时间:2025-03-07 格式:DOC 页数:3 大小:481.76KB
下载 相关 举报
C实验报告-实验4继承与派生.doc_第1页
第1页 / 共3页
C实验报告-实验4继承与派生.doc_第2页
第2页 / 共3页
点击查看更多>>
资源描述
如有你有帮助,请购买下载,谢谢! 实验 4 继承与派生 一、实验目的和要求 (1)掌握派生类的定义方法和派生类构造函数的定义方法。 (2)掌握不同继承方式的情况下,基类成员在派生类中的访问权 限。 (3)掌握在多继承方式的情况下,构造函数与析构函数的调用时 机与顺序。 二、实验内容和原理 (1 )实验指导书 P86 任选一题。 1~2 (2 )实验指导书 P89 任选一题。 3~4 三、实验环境 联想计算机,Windows XP Visual C++ 6.0 操作系统, 四、算法描述及实验步骤 (1)输入源程序。 (2)检查程序有无错误(包括语法错误和逻辑错误),有则改之。 (3)编译和连接,仔细分析编译信息,如有错误应找出原因并改 正之。 (4)运行程序,分析结果,在原有程序得出正确结果后,修改程 序,将其改写为在类模板外定义,再按第(3)步骤运行。 (5)将调试好的程序保存在自己的用户目录中,文件名自定。 五、调试过程 1页 如有你有帮助,请购买下载,谢谢! (1 2 ) (2 4 ) 六、实验结果 (1 2 ) (2)4 七、总结 (1 )掌握构造函数和析构函数的定义方法 (2 )构造函数调用顺序:先调用所有基类的构造函数,然后调用派 生类的构造函数; (3 )析构函数调用顺序:先调用派生类的析构函数,然后调用基类 的析构函数,其顺序正好与构造函数调用顺序相反。 八、附录: (1 代码如下 ) #include<iostream> using namespace std; class Base1 {public: Base1(){cout<<"constructing Base1"<<endl;} ~Base1(){cout<<"destructing Base1"<<endl;} }; class Base2 {public: Base2(){cout<<"constructing Base2"<<endl;} ~Base2(){cout<<"destructing Base2"<<endl;} }; class Derived1:public Base1,virtual public Bas {public: Derived1(){cout<<"constructing Derived1"<<endl ~Derived1(){cout<<"destructing Derived1"<<endl }; class Derived2:public Base1,virtual public Bas 2页 如有你有帮助,请购买下载,谢谢! {public: Derived2(){cout<<"constructing Derived2"<<endl;} ~Derived2(){cout<<"destructing Derived2"<<endl;} }; class Derived3:public Derived1,virtual public Derived2 {public: Derived3(){cout<<"constructing Derived3"<<endl;} ~Derived3(){cout<<"destructing Derived3"<<endl;} }; int main() {Derived3 obj; return 0; } (2)4 代码如下 #include<iostream> using namespace std; const double PI=3.14; class Shape {public: double area()const{return 0.0;} void display(){}; }; class TwoDimShape:virtual public Shape { }; class ThreeDimShape:virtual public Shape { }; class Circle:public TwoDimShape {public: Circle(double myr){R=myr;} double area()const{return PI*R*R;} void display(){cout<<"Area of circle is ";} private: double R; }; class Rectangle:public TwoDimShape {public: Rectangle(double myl,double myw) {L=myl; W=myw; } double area()const{return L*W;} void display(){cout<<"Area of rectangle is";} 3页
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服