继承与派生

来源:互联网 发布:如何做好网络推广工作 编辑:程序博客网 时间:2024/05/19 05:32

实验内容:

建立一个基类,两个派生类,让每一个派生类都包含一个函数area(),分别用来返回矩形和三角形的面积。用构造函数对height和width进行初始化。要求通过基类指针访问虚函数的方法。



纯虚函数:virtual double area()=0

纯虚函数的作用是在基类中为派生类保留一个函数的名字,以便派生类对它进行重新定义,纯虚函数没有函数体。

#include <iostream>using namespace std;class area_cl{protected:double height;double width;public:area_cl(double r,double s){   height=r;    width=s;}virtual double area()=0;//纯虚函数};class rectangle:public area_cl{public:rectangle(double r,double s):area_cl(r,s){ }double area(){   return height*width;}};class isosceles:public area_cl{public:isosceles(double r,double s):area_cl(r,s){ }double area(){   return height*width/2;}};int main(){   area_cl *a;    rectangle s(10.0,5.0);isosceles i(4.0,6.0);a=&s;cout<<"the area of rectangle is: "<<a->area()<<endl;//s.area()a=&i;cout<<"the area of isosceles is: "<<a->area()<<endl;//i.area()return 0;}

运行结果:


0 0
原创粉丝点击