C++小例子
来源:互联网 发布:三只眼 漫画 知乎 编辑:程序博客网 时间:2024/05/01 06:02
写一个程序,定义一个抽象类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.5class Trapezoid:public Shape{public:Trapezoid(double i,double j,double k):a(i),b(j),h(k){}double area() const{return ((a+b)*h*0.5);}private:double a,b,h;}//三角形 (底*高)*0.5class Triangle:public Shape{public:Triangle(double i,double j):w (i),h(j){}double aree()const{return w*h*0.5;}private:double w,h;}void main{Shape * p[5];Square se(5);Trapezoid td(2,5,4);Triangle te(5,8);p[0]=&se;//正方形p[1]=&td;//梯形p[2]=&te;//三角形double da=0;for(int i=0;i<3;i++){da+=p[i]->area();}cout<<"图形的总面积是:"<<da<<endl;}输出结果:
图形的总面积是:25
图形的总面积是:14
图形的总面积是:20
0 0
- C语言小例子
- [C#]LINQ小例子
- c 语言线程小例子
- [Objective-C] Categories 小例子
- C语言 经典小例子
- C动态变量生成的小例子!
- [C#]多线程读取数组的小例子
- linux C时间函数应用小例子
- [C#]SMTP邮件发送小例子
- C语言操作MYSQL小例子
- Linux下C内联汇编小例子
- C#--文件和目录操作小例子
- pat,c/c++程序小例子
- 【C#】几个好玩的小例子
- C-运算符优先级一个小例子
- C语言中dlsym的小例子
- C程序设计几个有意思的小例子
- c小例子 10个数找出第一名
- 机器学习笔记3——聚类
- Linux下查看文件和文件夹大小
- 欢迎使用CSDN-markdown编辑器
- socket程序listen之后,不写accept函数,会是怎样一种情况?
- 2.ssh中整合时发生的异常:java.lang.NoSuchMethodException
- C++小例子
- c#学习 1/22 c#语言介绍
- Web分页工具类
- 汉语编程能给我们带来什么?
- 蓝桥杯 算法训练 最大最小公倍数
- LeetCode #414: Third Maximum Number
- window下cmd命令行的使用
- 大数据Spark“蘑菇云”项目实战第63课: 广告点击系统高可用性和性能优化 checkpoint wal driver高可用 并行度配置
- c#学习 2/22 c#基础介绍