写一个程序,定义一个抽象类Shape,由它派生3个类:Square(正方形)、Trapezoid(梯形)和Triangle(三角形)。用虚函数分别计算几种图形面积、并求它们的和。要求用基类指针数组,使它每一个元素指向一个派生类对象。
分析:题目给出的很清楚,只要写一个基类,三个派生类,并且通过主函数显示出来就可以了。。
唯一有点难度的就是最后一句话,,用基类指针数组,使他每一个元素指向一个派生类对象。
这个可以在主函数中,声明一个数组,数组中包含各形状图形的参数,将数组的指针指向调用派生类的方法。。
源码如下:
#include <iostream>
using namespace std;
class Shape
{
public :
virtual double area() const=0;
};
//正方形:长*宽
class Square:public Shape{
public:
Square(double s):side(s){} //
double area() const{
return side*side;//正方形的面积
}
private :
double side;//定义一个私有边长
};
//梯形:(上底加下底)*高 *0.5
class Trapezoid:public Shape{
public:
Trapezoid(double i,double j,double k):a(i),b(j),h(k){}
double area() co

这篇博客介绍了一个C++编程实例,定义了一个抽象基类Shape,派生了Square、Trapezoid和Triangle三个类,使用虚函数计算不同图形的面积,并通过基类指针数组来操作派生类对象,实现了计算图形总面积的功能。
最低0.47元/天 解锁文章
1466

被折叠的 条评论
为什么被折叠?



