实验4继承与派生_第1页
实验4继承与派生_第2页
实验4继承与派生_第3页
实验4继承与派生_第4页
实验4继承与派生_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

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

文档简介

1、实验4 继承与派生班级 网络1311 学号 39 姓名 付豪 成绩 一、实验目的1. 熟练掌握类的继承,能够定义和使用类的继承关系2. 掌握派生类的声明与实现方法3. 掌握类构造函数的初始化列表与作用域分辨率的使用方法4. 理解虚基类在解决二义性问题中的作用.二、实验内容1定义一个基类有姓名、性别、年龄,再由基类派生出教师类和学生类,教师类增加工号、职称和工资,学生类增加学号、班级、专业和入学成绩,在main()函数中定义基类和派生类对象,对类进行测试。2声明一个哺乳动物Mammal类,再由此派生出狗Dog类,声明一个Dog类的对象,观察基类与派生类的构造函数与析构函数的调用顺序。3定义一个P

2、oint类,派生出矩形类Rectangle和圆类Circle,计算各派生类对象的面积Area()。4设计一个圆类circle和一个桌子类table,另设计一个圆桌类roundtable,它是从前两个类派生的,要求输出一个圆桌的高度、面积和颜色等数据。 5定义一个大学生类student,函数私有数据成员:姓名、学号、校名,并为它定义带参数的构造函数,参数带缺省值的构造函数和输出数据成员值的print()公有成员函数,另定义研究生类,它以公有继承方式派生于类student,新增加“研究方向、导师名”两个私有数据成员,并定义带参数的构造函数和输出研究生数据的print()公有成员函数。在main()

3、函数中定义基类和派生类对象,对类进行测试。三、实验源程序、测试与结论1#include<iostream>#include<string>using namespace std;class personstring name; char sex;int age;public:person(string n,char s,int a):name(n),sex(s),age(a) void show()cout<<name<<endl; cout<<sex<<endl;cout<<age<<endl;c

4、lass teacher:public personint num; string job; int money;public:teacher(string n,char s,int a,int nu,string j,int m):person(n,s,a),num(nu),job(j),money(m) void show()person:show();cout<<num<<endl;cout<<job<<endl;cout<<money<<endl;class student:public personint num

5、; string Class; string zhuanye; float sorce;public:student(string n,char s,int a,int nu,string C,string z,float ss):person(n,s,a),num(nu),Class(C),zhuanye(z),sorce(ss) void show()person:show(); cout<<num<<endl;cout<<Class<<endl;cout<<zhuanye<<endl;cout<<sorc

6、e<<endl;void main() teacher t1("Fsda",'M',1234,74,"jiaoshi",8000); student s1("Hfgh",'F',1145,1001,"BX1311","wangluo",511); t1.show();cout<<endl<<endl;s1.show();2#include<iostream>using namespace std;class Mamm

7、alpublic:Mammal()cout<<"Mammal构造"<<endl;Mammal()cout<<"Mammal析构"<<endl;class Dog:public Mammalpublic:Dog()cout<<"Dog构造"<<endl;Dog()cout<<"Dog析构"<<endl;void main() Dog a;3.#include<iostream>using namespace s

8、td;class Pointdouble x;double y;public:Point(double x,double y):x(x),y(y)void show()cout<<"("<<x<<","<<y<<")"<<endl;class Rectangle:public Point double x, y;public:Rectangle(double x,double y,double x1,double y1):Point(x,y),x(x1),y(y1

9、)void Area()Point:show();cout<<"Ãæ»ý:"<<x*y<<endl;class Circle:public Pointdouble r;public:Circle(double x,double y,double c):Point(x,y),r(c)void Area()Point:show();cout<<"Ãæ»ý:"<<r*r*3.14<<endl;void main

10、() Rectangle f2(5,6,7,8); Circle f3(1,2,3);f2.Area();f3.Area();4.#include<iostream>#include<string>using namespace std;class Circleint r;public:Circle(int r1)r=r1;class Tableint h;string color;public:Table(int h1,string c1)h=h1;color=c1;class Roundtable:public Circle,public Tablepublic:R

11、oundtable(int x,int y,string z):Circle(x),Table(y,z) cout<<"高度:"<<x<<"面积:"<<y<<"颜色:"<<z<<endl;void main() string c; cout<<"请输入颜色:"<<endl;cin>>c;Roundtable a(7,11,c);5.#include<iostream>#include&

12、lt;string>using namespace std;class student protected: string name; int num; string school;public:student(string n="hi",int a=0,string b="bey"):name(n),num(a),school(b)void print() cout<<"name:"<<name<<endl; cout<<"num:"<< num&

13、lt;<endl; cout<<"school:"<<school<<endl;class graduate:public student string research_area;string tutor_name;public:graduate(string a,int b,string c,string d,string e): student(a,b,c),research_area(d),tutor_name(e)void print() cout<<"name:"<<name&

14、lt;<endl; cout<<"num:"<< num<<endl; cout<<"school:"<<school<<endl;/*/student:print();cout<<"research_area:"<<research_area<<endl;cout<<"tutor_name:"<<tutor_name<<endl;void main() graduate g("Fsda",17,"DJ","wangluo","Tao"); cout<<"graduate:"<<endl

温馨提示

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

评论

0/150

提交评论