How to implement pure virtual functions in C++

1 Answer

0 votes
#include <iostream>

using std::cout;
using std::endl;

class Shape {
public:
	Shape() {}
	virtual ~Shape() {}
	virtual double Area() = 0;
	virtual double Perimeter() = 0;
private:
};

class Circle : public Shape {
public:
	Circle(int _radius) :radius(_radius) {}
	virtual ~Circle() {}
	double Area() { return 3.14 * radius * radius; }
	double Perimeter() { return 2 * 3.14 * radius; }
private:
	int radius;
};

class Rectangle : public Shape {
public:
	Rectangle(int _length, int _width) : length(_length), width(_width) {}
	virtual ~Rectangle() {}
	double Area() { return length * width; }
	double Perimeter() { return 2 * length + 2 * width; }
private:
	int length;
	int width;
};

int main()
{
	Shape *p;
	p = new Circle(7);
	cout << p->Area() << endl;
	cout << p->Perimeter() << endl;
	delete p;

	p = new Rectangle(3, 5);
	cout << p->Area() << endl;
	cout << p->Perimeter() << endl;
	delete p;

	return 0;
}

/*
run:

153.86
43.96
15
16

*/

 



answered Apr 1, 2018 by avibootz

Related questions

1 answer 180 views
3 answers 185 views
185 views asked Jan 29, 2023 by avibootz
1 answer 170 views
1 answer 171 views
1 answer 164 views
1 answer 162 views
...