C++语言程序设计实验报告 8
C++语言程序设计实验报告
C++语言程序设计实验报告(八)
基础题一
实验任务:
定义object类,有weight属性及相应的操作函数,由此派生出box类,增加Height和width属性及相应的操作函数,声明一个box对象,观察构造函数与析构函数的调用顺序。
分析:
首先定义object类,在构造函数中设置构造函数被调用的提示语,再在析构函数中设置析构函数被调用的提示语,再派生出box类,按照题目写下去,运行处的结果,可发现在程序执行完将要释放空间时,析构函数被自动调用,且析构函数被调用的顺序和构造函数被调用的顺序相反。
代码:
#include<iostream>
using namespace std;
class Object
{
public:
Object(float weight)
{
cout<<"该物体的重量为:"<<weight<<"kg"<<endl;
cout<<"Object的构造函数被调用"<<endl;
}
~Object(){cout<<"object的析构函数被调用"<<endl;} };
class Box:public Object
{
public:Box(float a,float b,float c):Object(a),Height(b),Width(c){cout<<"Box的构造函数被调用"<<endl;}
GetH(){cout<<"该物体的长为:"<<Height<<"m"<<endl;}
GetW(){cout<<"该物体的宽为:"<<Width<<"m"<<endl;}
~Box(){cout<<"Box的析构函数被调用"<<endl;}
private:
float Height,Width;
};
int main()
{
Box box1(2,3,4);
box1.GetH();
C++语言程序设计实验报告
box1.GetW();
return 0;
}
结果:
基础题二
实验任务:
通过一个例子说明虚基类的作用,如果不使用虚基类会出现什么问题?
分析: 在不使用虚基类的情况下,如果某个派生类的部分或全部直接基类是从另外一个共同的基类派生而来的,那么在派生类的对象中,这些从共同基类继承的同名数据在内存中拥有多个拷贝,同一函数名会有多个映射。
代码:
#include<iostream>
using namespace std;
class B0
{
public:
B0(int a):nv(a){}
int nv;
void fun()
{
cout<<"fun B0" << endl;
}
};
class B1:public B0
{
public:
B1(int a, int b):B0(a),nv1(b){}
int nv1;
};
class B2:public B0
C++语言程序设计实验报告
{
public:
B2(int a, int c):B0(a),nv2(c){}
int nv2;
};
class D1:public B1,public B2
{
public:
D1(int a, int b, int c, int d):B1(a,b),B2(a,c),nvd(d){}
int nvd;
void fund()
{
cout <<"fund D1" << endl;
}
};
int main()
{
D1 myd(1, 2, 3, 4);
myd.fun();
return 0;
}
结果:
程序报错如下
提高题
实验任务:
定义一个车(vehicle)基类,具有MaxSpeed、Weight等成员变量,Run、Stop等成员函数,由此派生出自行车(bicycle)类、汽车(mororcar)类。自行车(bicycle)类有高度(Height)等属性,汽车(motorcar)类有座位数(SeatNum)等属性。从bicycle和motorcar派生出摩托车(motorcycle)类,在继承过程中,注意把vehicle设置为虚基类。试编程实现上述要求。并考虑如果不把vehicle设置为虚基类,会有什么问题?
代码:
//class Vehicle
#include <iostream>
C++语言程序设计实验报告
using namespace std;
class Vehicle
{
private:
float MaxSpeed;
float Weight;
public:
Vehicle(){}
~Vehicle(){}
void Stop() {cout<<"Stop!"<<endl;} void Run() {cout<<"Run!"<<endl;} };
//class Bicycle
class Bicycle: virtual public Vehicle
{
private:
float Height;
float Color;
public:
Bicycle(){}
~Bicycle(){}
};
//class Motorcar
class Motorcar: virtual public Vehicle {
private:
int SeatNum;
public:
Motorcar(){}
~Motorcar(){}
};
class Motorcycle:public Bicycle,public Motorcar {
public:
Motorcycle(){}
~Motorcycle(){}
};
int main()
{
Motorcycle mo;
mo.Run();
mo.Stop();
return 0;
}
C++语言程序设计实验报告
结果:
…… 此处隐藏:448字,全部文档内容请下载后查看。喜欢就下载吧 ……
相关推荐:
- [教学研究]2012西拉科学校团少队工作总结
- [教学研究]建筑工程公司档案管理制度
- [教学研究]小学数学人教版六年级上册圆的周长和面
- [教学研究]ERP电子行业解决方案
- [教学研究]钢支撑租赁合同范本
- [教学研究]预应力自动张拉系统用户手册Rev1.0
- [教学研究]MOOC课程:金瓶梅人物写真(每章节课后
- [教学研究]追加被执行人申请书(适用追加夫妻关系)
- [教学研究]2014年驾考科目一考试最新题库766
- [教学研究]2013-2014学年度九年级物理第15章《电
- [教学研究]新版中日交流标准日本语初级下26课-客
- [教学研究]小导管注浆施工作业指导书
- [教学研究]一般财务人员能力及人岗匹配评估表
- [教学研究]打1.2.页 小学一年级暑假口算100以内加
- [教学研究]学习贯彻《中国共产党党和国家机关基层
- [教学研究]2012年呼和浩特市中考试卷_35412
- [教学研究]最简易的电线电缆购销合同范本
- [教学研究]如何开展安全标准化建设
- [教学研究]工作分析与人岗匹配
- [教学研究]2016-2017学年高中历史第七单元现代中
- 山东省义务教育必修地方课程小学三年级
- 台湾宜兰大学互联网交换技术课程 01_In
- 思想品德:第一课《我知我家》课件(人
- SAR合成孔径雷达图像点目标仿真报告(附
- 利辛县“十三五”规划研究报告
- 2015-2020年中国手机APP行业市场发展趋
- 广告策略、创意表现、媒体方案
- 企业如何申请专利的的几点思考
- 《中国教育简史》网上作业
- 高中历史第二单元西方人文精神的起源及
- 年终晚会必备_精彩的主持稿_精心整理_
- 信息工程专业自荐书
- 2019高考历史人教版一轮练习:第十二单
- JAVA俱乐部管理系统软件需求规格说明书
- 2016-2021年中国小型板料折弯机行业市
- (人教新课标)六上_比的基本性质课件PPT
- 辽宁省公务员考试网申论备考技巧:名言
- 神经阻滞麻醉知情同意书
- 施工企业信息填报、审核和发布的相关事
- 初一(七年级)英语完形填空100篇




