如何编写程序,实现由定义抽象基类Shape(形状)派生出三个派生类?

 我来答
似晖0Hf
推荐于2019-10-30 · TA获得超过1198个赞
知道答主
回答量:23
采纳率:80%
帮助的人:1.4万
展开全部

定义抽象基类Shape,由它派生出3个派生类: Circle(圆形)、Rectangle(矩形)、Triangle(三角形),用一个函数printArea分别输出以上三者的面积,3个图形的数据在定义对象时给定。

#include<iostream>  using namespace std;  class Shape  {   public:  

virtual float printArea() const {return 0.0;};    };  class Circle:public Shape  {  

public:  Circle(float =0);   virtual float printArea() const {return 3.14159*radius*radius;}      

protected:  float radius; };  Circle::Circle(float r):radius(r)  {  }  class Rectangle:public Shape  {  public:   Rectangle(float =0,float =0);  

virtual float printArea() const;  protected:  float height;  float width;  };  

Rectangle::Rectangle(float w,float h):width(w),height(h){  }  

float Rectangle::printArea()const  {  return width*height;  }  

class Triangle:public Shape  {   public:  Triangle(float =0,float =0);  

virtual float printArea() const;  protected:  float height;  float width;  

抽象类(abstract base class,ABC)就是类里定义了纯虚成员函数的类。虚函数 只提供了接口,并没有具体实现。抽象类不能被实例化(不能创建对象),通常是作为基类供子类继承,子类中重写虚函数,实现具体的接口。简言之,ABC描述的是至少使用一个纯虚函数的接口,从ABC派生出的类将根据派生类的具体特征,使用常规虚函数来实现这种接口。

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式