C++课后习题
来源:互联网 发布:网络销售员招聘信息 编辑:程序博客网 时间:2024/06/10 14:47
编写程序,定义抽象类Shape,由它派生出5个派生类:Circle(圆形) Square(正方形) Rectangle(长方形) Trapezoid(梯形) Triangle(三角形)。用虚函数分别计算几个图形的面积。要求使用基类指针,使其指向派生类对象:
#include<iostream.h>
const double PI=3.14;
class Shape
{
public:
virtual double area()=0;
virtual void shapeName()=0;
};
class Circle:public Shape
{
private:
double r;
public:
Circle(double rr)
{
r=rr;
}
virtual double area()
{
return PI*r*r;
}
virtual void shapeName()
{
cout<<"This is a Circle.";
}
};
class Square:public Shape
{
private:
double x;
public:
Square(double xx)
{
x=xx;
}
virtual double area()
{
return x*x;
}
virtual void shapeName()
{
cout<<"This is a Square.";
}
};
class Rectangle:public Shape
{
private:
double x1,y1;
public:
Rectangle(double m,double n)
{
x1=m;
y1=n;
}
virtual double area()
{
return x1*y1;
}
virtual void shapeName()
{
cout<<"This is a Rectangle.";
}
};
class Trapezoid:public Shape
{
private:
double x2,y2,h;
public:
Trapezoid(double a,double b,double hh)
{
x2=a;
y2=b;
h=hh;
}
virtual double area()
{
return (x2+y2)*h/2;
}
virtual void shapeName()
{
cout<<"This is a Trapezoid.";
}
};
class Triangle:public Shape
{
private:
double x3,h1;
public:
Triangle(double e,double d)
{
x3=e;
h1=d;
}
virtual double area()
{
return x3*h1/2;
}
virtual void shapeName()
{
cout<<"This is a Triangle.";
}
};
void main()
{
Shape *p;
Circle c(2);
Square s(3);
Rectangle cf(6,6);
Trapezoid t(3,5,4);
Triangle sj(7,5);
p=&c;
p->shapeName();
cout<<"area="<<p->area()<<endl;
p=&s;
p->shapeName();
cout<<"area="<<p->area()<<endl;
p=&cf;
p->shapeName();
cout<<"area="<<p->area()<<endl;
p=&t;
p->shapeName();
cout<<"area="<<p->area()<<endl;
p=&sj;
p->shapeName();
cout<<"area="<<p->area()<<endl;
}
- c程序设计语言 课后习题
- C和指针课后习题
- C语言课后习题解
- C++Primer Chapter3课后习题
- C程序设计谭浩强版课后习题答案
- 《C语言程序设计教程》课后习题答案
- c程序设计课后习题p39 2.27
- C语言程序设计 全书课后习题答案!!
- 《C Primer Plus》第一章 概览 课后习题
- C语言第三版课后习题答案
- 数据结构(C语言版)课后习题1.3
- 数据结构(C语言版)课后习题1.4
- 数据结构(C语言版)课后习题2.1
- Linux&C 线程控制 课后习题
- c primer plus第十一章课后习题
- linux&c 进程控制 课后习题
- c程序设计(4)函数课后习题
- c++primer第六章课后习题
- weblogic jdbc 在删除时没有删除干净
- android全格式多媒体播放器(三:基于ffmpeg架构的具体实现)
- VC动态创建控件
- Excel 部分操作总结
- 二厶可可肉 杂项 判断SQL 中,某列的值 是否非空
- C++课后习题
- 万网云翔主机centos系统下安装memcached
- 利用金山快盘在不同电脑上管理和同步IE收藏夹
- linux grep搜索文件中的字符串
- 自定义绘制控件的方法
- 序对的一种过程性表示
- Anonymous黑客遭逮捕 面临最多15年监禁
- websphere problem
- InvalidateRect,invalidate,updatewindow