定义一个基类shape,再次基础上派生出 长方形,正方形,圆形,二者都有getArea()计算对象的面积

Posted Roam-G

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了定义一个基类shape,再次基础上派生出 长方形,正方形,圆形,二者都有getArea()计算对象的面积相关的知识,希望对你有一定的参考价值。

定义一个基类shape,再次基础上派生出 长方形,正方形,圆形,二者都有getArea()计算对象的面积


#include <iostream>
using namespace std;

//基类 shape
class Shape {
public:
	Shape() {}
	~Shape() {}
	virtual float getArea() {
		return -1;
	}
};

//派生类 圆形
class Circle :public Shape {
public:
	Circle(float radius):itsRadius(radius){}
	~Circle(){}
	float getArea() {
		return 3.14 * itsRadius * 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;
	}
	virtual float getLength() {
		return itsLength;
	}
	virtual float getWidth() {
		return itsWidth;
	}
private:
	float itsWidth;
	float itsLength;
};

//正方形
class Square :public Rectangle {
public: 
	Square(float len);
	~Square() {}
};

Square::Square(float len) :Rectangle(len, len) {

}

int main() {
	Shape* sp;

	sp = new Circle(5);
	cout << "圆形的面积:" << sp->getArea() << endl;
	delete sp;
	sp = new Rectangle(4, 6);
	cout << "长方形的面积:" << sp->getArea() << endl;
	delete sp;
	sp = new Square(5);
	cout << "正方形的面积:" << sp->getArea() << endl;
	delete sp;
	return 0;
}

以上是关于定义一个基类shape,再次基础上派生出 长方形,正方形,圆形,二者都有getArea()计算对象的面积的主要内容,如果未能解决你的问题,请参考以下文章

类的继承定义一个computer类在此基础上派生出两个子类(继承与多态绑定)

每日打卡-14

C++使用一个基类派生出圆形和矩形,在矩形下派生出正方形并计算所有面积

定义一个人员类person

纯虚函数的学习和使用

综合实战-数组操作01