- 1、本文档共12页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C++面向对象程序设计实验五:派生类与继承
实验目的:
学习类的继承,能够定义和使用类的继承关系。
学习单继承派生类的声明与定义方法。
熟悉派生类在私有继承、公有继承、保护继承这三种方式下对基类成员的访问规则。
知道单继承派生类构造函数和析构函数的执行次序,熟悉单继承派生类构造函数和析构函数的构造方法。
学习多重继承派生类的定义方法。
知道多重继承派生类构造函数和析构函数的执行次序,熟悉多重继承派生类构造函数和析构函数的定义方法,理解虚基类和非虚基类的差别。
实验内容:
1、定义一个Rectangle类,它包含两个数据成员length和width;以及包含用于求长方形面积的area成员函数。再定义Rectangle的派生类Cuboid,它包含一个新的数据成员height和用于求长方体体积的成员函数Vol。在main函数中,使用这两个类,求某个长方形的面积和某个长方体的体积。
#include stdafx.h
#include iostream
using namespace std;
class Rectangle
{double length,width;
public:
Rectangle(double length1,double width1)
{length=length1;
width=width1;}
double area()
{return length*width;}
};
class Cuboid:public Rectangle
{double height;
public :
Cuboid(double length1,double width1,double height1):Rectangle(length1,width1)
{height=height1;}
double Vol()
{return area()*height;}//
};
int main()
{Rectangle rec(12,15);
Cuboid cuboid(25,16,20);
coutthe rectangles area is ;
coutrec.area();
coutendl;
coutthe cuboids volume is ;
coutcuboid.Vol()endl;
return 0;
}
2、程序填空:定义一个Person类,它包含三个数据成员name、age、sex;以及用于显示数据成员值的show成员函数。再定义Person的派生类Teacher,它包含两个新的数据成员department(部门)、salary(月薪),和用于显示数据成员值的show成员函数。再定义Person的派生类Student,它包含两个新的数据成员code(学号)、score(分数),和用于显示数据成员值的show成员函数。再定义Teacher类和Student类的多重继承派生类TStudent(例如:由正在攻读博士学位的在职教师构成的类)。
在main函数中,使用这四个类,分别输出此四个类的某个对象的全部数据成员的值。给出部分实现代码如下:
// shiyan5.cpp : 定义控制台应用程序的入口点。
//
#include stdafx.h
#include iostream
#include string
using namespace std;
class Person
{
protected: //若将数据成员设为私有的,在本题中可能比较麻烦
string name; //姓名
int age; //年龄
char sex; //性别
public:
Person(string name1,int age1,char sex1):name(name1),age(age1),sex(sex1)
//构造函数定义
{
cout Person constructing...endl;
}
~Person() {cout Person destructing...endl;} //析构函数定义
void show()
{
cout name:nameendl;
cout age:ageendl;
cout sex:sexendl;
}
};
class Teacher:public virtual Person
{protected:
string department;
double salary;
public:
Teacher(string name1,int age1,char sex1,string department1,double salary1):Person(name1,age1,sex1)
{dep
您可能关注的文档
- ad0808转换配C程序 绝对正确显示不太监ad0808转换配C程序 绝对正确显示不太监.doc
- ADO,OLEDB,ODBC,DAO的区别ADO,OLEDB,ODBC,DAO的区别.doc
- Advertising_on_the_Internet.pdfAdvertising_on_the_Internet.pdf.doc
- AD0809中文资料和单片机电路及程序AD0809中文资料和单片机电路及程序.doc
- ai ei ui 教学实录及评议ai ei ui 教学实录及评议.doc
- ai ei ui-复习三ai ei ui-复习三.doc
- ai ei ui教学设计上交稿ai ei ui教学设计上交稿.doc
- ai_ei_ui 说课稿ai_ei_ui 说课稿.doc
- Ajaxbm北京大学医学部——外科学笔记Ajaxbm北京大学医学部——外科学笔记.doc
- agc气相色谱仪和agilent气相色谱仪价格agc气相色谱仪和agilent气相色谱仪价格.docx
文档评论(0)