- 1、本文档共11页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第7次上机
实验目的:
1.掌握类的继承的概念和使用方法。
实验内容:
7—5定义一个基类 Shape,在此基础上派生出Rectangle和Circle,二者豆油getArea()函数计算对象的面积,使用Rectangle类创建一个派生类Square
1)Shape类设计:
?根据分析,从Shape类中派生出了Rectangle和Circle,从Rectangle派生出了Square,这三个派生类之间没有共同的属性,所以Shape类可以不设计数据成员,而函数成员为GetArea(),函数体为为空
2)Rectangle类的数据成员有长和宽,函数成员有:构造函数,设置和获取函数,重载Shape类中的GetArea()来求面积
3)Rectangle类的数据成员有半径,函数成员有:构造函数,设置和获取函数,重载Shape类中的GetArea()来求面积
4)Square类从Rectangle类继承,吸收了Rectangle的长和宽,所以可以考虑用构造函数将长和宽设置相等的值,构成边长,而吸收过来的GetArea()函数不需要做修改。
参考答案:
#include iostream.h
class Shape
{
public:
void GetArea() { }
};
//定义矩形类
class Rectangle:public Shape
{
private:
int lenth;
int width;
public:
Rectangle(int l,int w) { lenth = l;width = w;}
double GetArea() { return lenth * width ;}
};
//定义圆类
class Circle:public Shape
{
private:
double radius;
public:
Circle(double r) { radius = r;}
double GetArea() { return 3.14 * radius * radius;}
};
//定义正方形类
class Square:public Rectangle
{
public:
Square(int a):Rectangle(a,a) { }
};
void main(void)
{
Rectangle rect(1,2);
Circle cr(3);
Square sq(4);
cout 矩形的的面积是:rect.GetArea()endl;
cout 圆的面积是: cr.GetArea()endl;
cout 正方形的面积是: sq.GetArea()endl;
}
说明:Shape类的作用:主要是为了统一处理,比如:Shape *p ; p -GetArea()形式,第八章会用到这样的技术。
课后习题7-6 定义一个动物类 Mammal,再由此派生出狗类Dog,定义Dog类的对象,观察基类与派生类的构造函数和析构函数的调用顺序。
//分析:
Mammal的设计:描述一般动物具有的特征,有颜色,体重,年龄等,会发声,有一般的设置函数和获取函数。
Dog的设计:除了具有一般动物的特征,还有尾巴个数,会汪汪叫,会摇尾巴,会咬人,有一般的设置函数和获取函数。
参考答案:
#include iostream.h
#include string.h
class Mammal
{
private:
char m_color[20];
int m_weight;
public:
void SetColor(char color[20]);
void SetWeight(int weight);
char *GetColor();
int GetWeight();
Mammal(char color[20],int weight);
~Mammal();
void CanSpeak();
};
void Mammal::SetColor(char color[20])
{
strcpy(m_color,color);
}
void Mammal::SetWeight(int weight)
{
m_weight = weight;
}
char * Mammal::GetColor(){ return m_color;}
int Mammal::GetWeight() { return m_weight;}
Mammal::Mammal(char color[20],int weight)
{
SetColor(color);
SetWeight(weight);
cout 调用Mammal的构造函数endl;
您可能关注的文档
- 第6篇 鼠标程序设计.ppt
- 第6篇 SecPath 100N实验.pdf
- 第6篇 T-SQL基础.ppt
- 第6篇 属性表编辑.pdf
- 第6篇 数据表的基本应用.ppt
- 第6篇 数据库设计_1.ppt
- 第6篇 数据完整性.ppt
- 第6篇 特许经营加盟模式设计.ppt
- 第6篇+图像处理.pptx
- 第6篇gcc编译器linux.ppt
- 2024年江西三校生对口升学考试语文试卷真题(含答案详解).pdf
- 2025年广东省高中学业水平考试春季高考数学试题(含答案解析).docx
- 2024年山东省春季高考济南二模数学试卷试题(含答案详解).docx
- 2024年吉林省高职高专单独招生考试数学试卷真题(含答案).docx
- 2024年广西高职对口中职考试文化测试语数英试题真题.pdf
- 2024年河南省对口招生考试语文试卷试题真题(精校打印).pdf
- 2024年湖南高校对口招生考试数学试卷试题真题(含答案).docx
- 2024年吉林省高职高专单独招生中职英语试卷真题(精校打印).docx
- 2024年浙江省单独考试招生文化课考试数学试卷真题(含答案详解).pdf
- 2024年安徽省高校分类考试对口招生语文试卷真题(含答案).pdf
文档评论(0)