多态性与虚函数实验报告
多态性与虚函数实验报告
实验题 目 班级 多态性与虚函数 组别 姓名 日期 类型
【实验目的】 1.理解多态性的概念。 2.了解编译时的多态和运行时的多态。 3.掌握虚函数的定义及实现,掌握虚析构函数的使用方法。 4.了解纯虚函数和抽象类的关系及用法。 【实验原理】 设计一个基类 Base,其作用是计算一个图形的面积,它只有 一个公有的函数成员虚函数 area。再从 Base 类公有派生一个三角 形类 Triangle 和一个圆类 Circle,在类 Triangle和类 Circle 中分别 定义自己的 area 函数,用于计算各自的面积。在主函数中设计一 个 Base类的对象指针,分别指向类 Triangle 和类 Circle 的对象, 调用各自的 area 函数显示相应对象的面积。 分析:用虚函数实现多态。 【实验器材】 微型计算机、Visual C++ 6.0集成软件平台 【实验步骤】 1.编辑源程序。 2.对源程序进行编译并调试程序。 3.连接并运行程序。 4.检查输出结果是否正确。程序设计如下: #include<iostream.h> const float PI = 3.14; class Base { public: virtual void area(){ cout<<"Base 中无实在面积输出!"<<endl;}
【实验结果与数据处理】
【实验结论】
}; class Triangle:public Base { public: Triangle(float w,float h){width = w;height = h;} void area() { cout<<"三角形的底为:"<<width<<"高为:"<<height <<"面积 为:"<<width*height/2<<endl; } private: float width,height; }; class Circle:public Base { public: Circle(float r){radius = r;} void area() { cout<<"圆形的半径为:"<<radius <<" 面 积 为 :" <<PI*radius*radius<<endl; } private: float radius; }; int main() { Base * p; Triangle obj1(2.0,3.0); Circle obj2(1.0); p= &obj1; p->area(); p=&obj2; p->area(); return 0; }