




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、实验4 继承与派生班 级学号(最后两位)姓 名成 绩 一、实验目的1. 熟练掌握类的继承,能够定义和使用类的继承关系2. 掌握派生类的声明与实现方法3. 掌握类构造函数的初始化列表与作用域分辨率的使用方法4. 理解虚基类在解决二义性问题中的作用.二、实验内容1定义一个基类有姓名、性别、年龄,再由基类派生出教师类和学生类,教师类增加工号、职称和工资,学生类增加学号、班级、专业和入学成绩。2声明一个哺乳动物Mammal类,再由此派生出狗Dog类,声明一个Dog类的对象,观察基类与派生类的构造函数与析构函数的调用顺序。3定义一个Point类,派生出矩形类Rectangle和圆类Circle,计算各派
2、生类对象的面积Area()。4设计一个圆类circle和一个桌子类table,另设计一个圆桌类roundtable,它是从前两个类派生的,要求输出一个圆桌的高度、面积和颜色等数据。 5定义一个大学生类student,函数私有数据成员:姓名、学号、校名,并为它定义带参数的构造函数,参数带缺省值的构造函数和输出数据成员值的print()公有成员函数,另定义研究生类,它以公有继承方式派生于类student,新增加“研究方向、导师名”两个私有数据成员,并定义带参数的构造函数和输出研究生数据的print()公有成员函数。在main()函数中定义基类和派生类对象,对类进行测试。三、实验源程序、测试与结论1
3、#include<iostream.h>#include<string.h>class personpublic: person (char *a,char *b,int s) name=a; sex=b; score=s; void display() cout<<"姓名:"<<name<<endl; cout<<"性别:"<<sex<<endl; cout<<"年龄:"<<score<<endl; p
4、rivate: char *name ; char *sex ; int score;class student:public personpublic: student(char *a,char *b,int s,char *c,int c2,float s1):person(a,b,s) pro=c; cla=c2; score=s1; void display1() cout<<"学生:"<<endl; display(); cout<<"专业:"<<pro<<endl; cout<
5、<"班级:"<<cla<<endl; cout<<"成绩:"<<score<<endl; cout<<endl; private: char *pro; int cla ; float score;class teacher: public personpublic: teacher(char *a,char *b,int s,char *p,int n,int sa):person(a,b,s) post=p; num=n; salary=sa; void display2(
6、) cout<<"教师:"<<endl; display(); cout<<"工号:"<<num<<endl; cout<<"职称:"<<post<<endl; cout<<"工资:"<<salary<<endl; cout<<endl; private: char *post ; int num; int salary; void main() teacher g1(&q
7、uot;小张","男",38, "老师",03,6742); g1.display2(); student s1("小李","男",19,"学生",04,85); s1.display1 ();2#include"iostream"using namespace std;class Mammalpublic:Mammal()cout<<"set Mammal class"<<endl;Mammal()cout<<
8、;"Delete base class"<<endl;class Dog:public Mammalpublic:Dog()cout<<"set Dog classn"Dog()cout<<"Delete Dog classn"void main()Dog b;3#include <iostream>using namespace std;#define PI 3.14class Pointpublic:Point() : m_x(0), m_y(0)Point(double x, do
9、uble y) : m_x(x), m_y(y)Point()protected:double m_x;double m_y;class Rectangle : public Pointpublic:Rectangle() : Point()Rectangle(double x, double y) : Point(x, y)Rectangle()double Area()return m_x * m_y;class Circle : public Pointpublic:Circle() : m_r(0)Circle(double r) : m_r(r)Circle()double Area
10、()return PI * m_r * m_r;private:double m_r;void main()double a,b,c;cout<<"输入矩形长、宽:n"cin>>a>>b;cout<<"输入圆的半径:n"cin>>c;Rectangle rect(a, b);Circle circle(c);cout << "矩形面积: " << rect.Area() << endl;cout << "圆的面积: &
11、quot; << circle.Area() << endl;4#include <iostream.h>#define PI 3.14class table;class circle;class roundtable : public table,public circlepublic: void iroundtable(double h,char *c,double r) heigh=h; radius=r; color=c; void display() cout<<"圆桌高度:"<<heigh<<
12、;endl; cout<<"圆桌面积: "<<PI*radius*radius<<endl; cout<<"圆桌颜色: "<<color<<endl; protected: double heigh,radius; char *color;void main() roundtable t; t.iroundtable(4,"blue",6); t.display();5#include"string"#include"iostream
13、"using namespace std;class Studentchar *name;char *number;char *college;public:Student();Student(char *p1,char *p2,char *p3);void print();Student:Student(char *p1,char *p2,char *p3)name=new charstrlen(p1)+1;strcpy(name,p1);number=new charstrlen(p2)+1;strcpy(number,p2);college=new charstrlen(p3)
14、+1;strcpy(college,p3);void Student:print()cout<<"name:"<<name<<endl;cout<<"number:"<<number<<endl;cout<<"college:"<<college<<endl;class graduate:public Studentchar *special;char *directorname;public:graduate();gradua
15、te(char *p1,char *p2,char *p3,char *sp,char *di);void print();graduate:graduate(char *p1,char *p2,char *p3,char *sp,char *di):Student(p1,p2,p3)special=new charstrlen(sp)+1;strcpy(special,sp);directorname=new charstrlen(di)+1;strcpy(directorname,di);void graduate:print()Student:print();cout<<"special is:"<<special<<endl;cout<<"directorname is:"<<directo
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 校园监控使用管理制度
- 校园读书长廊管理制度
- 校园防污防控管理制度
- 智能交通中的智能算法应用研究-洞察及研究
- 农村土地租赁与种植合作契约
- 感恩的心感恩老师的感人故事写人(11篇)
- 汽车维修行业故障诊断与排除案例分析
- dics考试题及答案
- 环球假期旅游与工作证明同函(5篇)
- 队长竞聘面试题及答案
- 血管内导管相关性血流感染预防与诊治2025
- 国际教育机构外教派遣服务协议
- 2025年安庆宿松县县属国有企业招聘57人笔试参考题库附带答案详解析集合
- 部编人教版一年级下册道德与法治复习计划
- 新基建浪潮下临沂市智慧交通管理的创新与突破
- 临时用电施工方案技术交底
- DB37∕T 5323-2025 住宅设计标准
- 2024年6月英语四级真题(全3套)
- MySQL数据库技术单选题100道及答案
- 《肝衰竭诊治指南(2024版)》解读
- 防暑应急救援演练脚本
评论
0/150
提交评论