《福建工程学院C++实验四-实验报告(共6页).doc》由会员分享,可在线阅读,更多相关《福建工程学院C++实验四-实验报告(共6页).doc(6页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上实验四 继承与派生 实验报告一、 实验目的:掌握利用单继承和多重继承的方式定义派生类的方法;深刻理解在各种继承方式下构造函数和析构函数的执行顺序;理解和掌握公有继承,私有继承和保护继承对基类成员的访问机制;理解虚基类的概念以及引入虚基类的目的和作用。二、 实验时间:三、 实验地点:四、 实验内容:1运行以下程序,并对运行结果进行分析#include using namespace std;class base int n;public: base(int a) coutconstructing base classendl; n=a; coutn=nendl; bas
2、e()coutdesstructing base classendl;class subs:public base base bobj; int m; public: subs(int a,int b,int c):base(a),bobj(c) coutconstructing sub classendl; m=b; coutm=mendl; subs()coutdestructing sub classendl;void main()subs s(1,2,3);2设计一个圆类circle和一个桌子类table,另外设计一个圆桌类roundtable,从前2个类派生的,要求输出一个圆桌的高度
3、,面积和颜色等数据。3设计一个虚基类base,包含姓名和年龄私有数据成员以及相关成员函数,由它派生出领导类leader,包含职务和部门私有数据成员以及相关成员函数。再由base派生出工程师类engineer,包含职务和专业私有数据成员以及相关成员函数。然后由leader和engineer类派生出主任工程师chairman。采用一些数据进行测试。代码1:第二题:#include #include using namespace std;class Circlepublic: Circle(double r) radius = r; double area()return (2.0 * 3.141
4、5 * radius * radius); private: double radius;class tablepublic: table(double h) high = h; double getHigh() return high;private: double high;class roundtable: public Circle, public tablepublic: roundtable(double r, double h, string c):Circle(r), table(h) color = c; void show() cout 圆桌高度: table:getHig
5、h() endl; cout 圆桌面积: Circle:area() endl; cout 圆桌颜色: color endl; private: string color;int main() roundtable test(2.0, 3.2, 红色); test.show(); return 0;第三题:#include #include using namespace std;class basepublic: base(string na, int a) name = na; age = a; void show() cout 姓名: name endl; cout 年龄: age en
6、dl; private: string name; int age;class leader:virtual public basepublic: leader(string na, int a, string j, string sec):base(na, a) job = j; section = sec; void show() base:show(); cout 职务: job endl; cout 部门: section endl; private: string job; string section;class engineer:virtual public basepublic
7、: engineer(string na, int a, string j, string m):base(na, a) job = j; major = m; void show() cout 职务: job endl; cout 专业: major endl; private: string job; string major;class chairman:public leader, public engineerpublic: chairman(string na, int a, string j, string sec, string m) :base(na,a),leader(na,a,j,sec),engineer(na,a,j,m) void show() leader:show(); engineer:show(); ;int main() chairman test(刀锋, 28, 主席, 行政部, 现代国际关系); test.show(); return 0;七、实验心得体会及问题反馈:这次学会了继承,派生类的使用,虚类的使用。其中发现许许多多的细节问题,很多小错误总找不到错误,还好最后讨论出了结果,不过总算还是勉强的掌握了,后面的知识会更加抽象,我要更加努力才行,恩恩!专心-专注-专业
限制150内