练习64
来源:互联网 发布:java quartz 日志级别 编辑:程序博客网 时间:2024/06/07 13:34
#include <iostream>
using namespace std;
class Shape
{
public:
Shape(){}
~Shape(){}
virtual float getArea() =0 ;
virtual float getPerim () =0 ;
int getVertexCount() const;
};
class Circle : public Shape
{
public:
Circle(float radius):itsRadius(radius){}
~Circle(){}
float getArea() { return 3.14 * itsRadius * itsRadius; }
float getPerim () { return 6.28 * itsRadius; }
private:
float itsRadius;
};
class Rectangle : public Shape
{
public:
Rectangle(float len, float width): itsLength(len), itsWidth(width){};
~Rectangle(){};
virtual float getArea() { return itsLength * itsWidth; }
float getPerim () { return 2 * itsLength + 2 * itsWidth; }
virtual float GetLength() { return itsLength; }
virtual float GetWidth() { return itsWidth; }
protected:
float itsWidth;
float itsLength;
};
class Square: public Rectangle
{
public:
Square (float len): Rectangle(len, len){};
~Square(){};
virtual float getArea() { return itsLength * itsWidth; }
float getPerim () { return 2 * itsLength + 2 * itsWidth; }
virtual float GetLength() { return itsLength; }
virtual float GetWidth() { return itsWidth; }
};
int Shape::getVertexCount() const
{
const type_info &info = typeid(*this);
if (info == typeid(Circle))
return 0;
else if (info == typeid(Square) || info == typeid(Rectangle))
return 4;
else
return -1;
}
int main()
{
Shape * sp;
sp = new Circle(5);
cout << "The area of the Circle is " << sp->getArea () << endl;
cout << "The perimeter of the Circle is " << sp->getPerim () << endl;
cout << "The vertex count of the Circle is " << sp->getVertexCount() << endl;
delete sp;
sp = new Rectangle(4,6);
cout << "The area of the Rectangle is " << sp->getArea() << endl;
cout << "The perimeter of the Rectangle is " << sp->getPerim () << endl;
cout << "The vertex count of the Rectangle is " << sp->getVertexCount() << endl;
delete sp;
sp = new Square(6);
cout << "The area of the Square is " << sp->getArea() << endl;
cout << "The perimeter of the Square is " << sp->getPerim () << endl;
cout << "The vertex count of the Square is " << sp->getVertexCount() << endl;
delete sp;
return 0;
}
using namespace std;
class Shape
{
public:
Shape(){}
~Shape(){}
virtual float getArea() =0 ;
virtual float getPerim () =0 ;
int getVertexCount() const;
};
class Circle : public Shape
{
public:
Circle(float radius):itsRadius(radius){}
~Circle(){}
float getArea() { return 3.14 * itsRadius * itsRadius; }
float getPerim () { return 6.28 * itsRadius; }
private:
float itsRadius;
};
class Rectangle : public Shape
{
public:
Rectangle(float len, float width): itsLength(len), itsWidth(width){};
~Rectangle(){};
virtual float getArea() { return itsLength * itsWidth; }
float getPerim () { return 2 * itsLength + 2 * itsWidth; }
virtual float GetLength() { return itsLength; }
virtual float GetWidth() { return itsWidth; }
protected:
float itsWidth;
float itsLength;
};
class Square: public Rectangle
{
public:
Square (float len): Rectangle(len, len){};
~Square(){};
virtual float getArea() { return itsLength * itsWidth; }
float getPerim () { return 2 * itsLength + 2 * itsWidth; }
virtual float GetLength() { return itsLength; }
virtual float GetWidth() { return itsWidth; }
};
int Shape::getVertexCount() const
{
const type_info &info = typeid(*this);
if (info == typeid(Circle))
return 0;
else if (info == typeid(Square) || info == typeid(Rectangle))
return 4;
else
return -1;
}
int main()
{
Shape * sp;
sp = new Circle(5);
cout << "The area of the Circle is " << sp->getArea () << endl;
cout << "The perimeter of the Circle is " << sp->getPerim () << endl;
cout << "The vertex count of the Circle is " << sp->getVertexCount() << endl;
delete sp;
sp = new Rectangle(4,6);
cout << "The area of the Rectangle is " << sp->getArea() << endl;
cout << "The perimeter of the Rectangle is " << sp->getPerim () << endl;
cout << "The vertex count of the Rectangle is " << sp->getVertexCount() << endl;
delete sp;
sp = new Square(6);
cout << "The area of the Square is " << sp->getArea() << endl;
cout << "The perimeter of the Square is " << sp->getPerim () << endl;
cout << "The vertex count of the Square is " << sp->getVertexCount() << endl;
delete sp;
return 0;
}
阅读全文
0 0
- 练习64
- 【SICP练习】64 练习2.35
- leetCode练习(64)
- 练习
- “++”“--”练习
- 练习
- 练习
- 练习
- 练习
- 练习
- 练习
- 练习
- 练习
- 练习
- 练习
- 练习
- 练习
- 练习
- 异常---is exceeding the 65535 bytes limit
- 操作系统思维导图
- leds-s3c24xx.c的代码逻辑
- 简介JVM的Parallel Scavenge及Parallel Old垃圾收集器
- Android启动过程概述
- 练习64
- redhat5.5升级firefox15
- 《Python数据分析与挖掘实战》笔记(二):Python2.7语法和第三方库
- 20.调用系统浏览器打开网页-隐式Intent的用法
- 终于开通了,以后这里将会记录我学习中的点点滴滴
- YOLO工程代码如何在windows上配置和运行!window上YOLO训练样本的制作
- 注册表获取系统驱动版本信息
- Android AsyncTask几个注意事项
- 遍历Map集合的四种方式