【#文档大全网# 导语】以下是®文档大全网的小编为您整理的《编写一个程序,计算三角形、正方形和圆形的面积,并用相关的数据进行测试。》,欢迎阅读!
青 岛 理 工 大 学
课程实验报告
课程 名称 姓名 实验名称
实 验 目 的 及 要 求 实验环境 实验 内容 算 法 描 述 及 实 验 步 骤
C++面向对象 程序设计 崔萌萌
班级 学号
网路091 实验日期 2011.5.19
200907201 实验成绩
实验六:多态与虚函数
1、 理解虚函数在类的继承层次中的作用及虚函数的引入对程序运行时的影
响,能够对使用虚函数的简单程序写出程序结果 2、 了解虚函数对多态的支持
3、 理解静态多态性和动态多态性,学会使用虚函数的继承实现动态多态性 4、 了解抽象类的概念
5、 掌握虚函数和纯虚函数的概念 Windows 7 VC6.0
编写一个程序,计算三角形、正方形和圆形的面积,并用相关的数据进行测试。附:用纯虚函数设置抽象基类
基类 Shape
Virtual void Area()=0
Rectangle int a,b,c; double p,s; Rectangle(); virtual void Area();
Square float l; double s;
Square(); virtual void Area();
Circle float r; double s; Circle(); virtualvoidArea();
1、 首先定义一个抽象类作为基类(virtual void Area()=0;//纯虚函数),以下均
用此类作为接口。
2、 分别定义Rectangle、Square、Circle类且均为公有继承,当使用虚函数时
一定要将继承方式定为公有继承
3、 分别定义虚函数的函数体否则派生类还是抽象类。据三种图形面积的求法,
一次正确定义求其面积的公式(注意三角形用海伦公式)。
4、 Main()函数中只能声明基类的指针或是引用,并据赋值兼容规则进行对象
地址赋给基类指针,调用Show()函数.
1
调 试 过 程 及 实 验 结 果 总 结 附 录
抽象类不能实例化!
经过这次练习发现,以前编写程序没有头绪等问题均是没有好好看看课本的程序实例,编写程序并不是那样难!
在运用指针调用成员函数时掌握了赋值兼容规则
#include #include using namespace std; const double PI=3.14159; class Shape//抽象类 { public: virtual void Area()=0;//纯虚函数 };
class Rectangle:public Shape //继承方式必须为public {public: Rectangle(int a1,int b1,int c1) {a=a1;b=b1;c=c1;} virtual void Area() { p=(a+b+c)/2.0; s=sqrt(p*(p-a)*(p-b)*(p-c));//海伦公式求三角形面积 cout<<"三角形面积为:"< } private: int a,b,c; double p,s; };
class Square:public Shape//正方形类 {public: Square(float myl) {l=myl;} virtual void Area() { s=l*l; cout<<"正方形面积为:"< }
2
private: float l; double s; };
class Circle:public Shape//圆类 {public: Circle(float myr) {r=myr;} virtual void Area() { s=r*r*PI; cout<<"圆的面积为:"< } private: float r; double s; };
void Show(Shape *p)//基类指针p {p->Area();} void main() {
Shape *p;//抽象类不能实例化但是可以定义指针或是引用 Rectangle Re(3,4,5);
p=ℜ//派生类对象地址赋给基类指针 Show(p);
Square Sq(3.5); p=&Sq; Show(p); Circle C(3.0); p=&C; Show(p); }
3
本文来源:https://www.wddqxz.cn/d5221ba8e63a580216fc700abb68a98271feac38.html