Series of Classes, using inheritence. I am having issues with this, what am I do
ID: 3590196 • Letter: S
Question
Series of Classes, using inheritence. I am having issues with this, what am I doing incorrectly?
#include
using namespace std;
/* Write a series of classes to describe a series of shapes.
1. Shape - PARENT
2. Rectangle
3. Square
4. Triangle
Each should have private variable number of sides, and publc method getArea();
Rectangle,Square, Triangle must inherit from class Shape.
*/
class Shape
{
protected:
int numSides = 0;
int area = 0;
public:
Shape()
{
numSides = 0;
area = 0;
}
Shape(double numSides, double area) :Shape()
{
}
double getArea()
{
return area;
}
};
class Rectangle : public Shape
{
private:
double length, width;
public:
Rectangle(double length, double width);
double getArea();
};
class Square : public Shape
{
private:
double side;
double area;
public:
Square(double newSide, double newArea)
{
side = newSide;
area = newArea;
}
};
class Triangle : public Shape
{
private:
double base, height;
public:
Triangle(double base, double height);
double getArea();
};
int main()
{
Rectangle newRectangle(3, 5);
Square newSquare(2,3);
Triangle newTriangle(5, 4);
cout << "Area of Rectangle: " << newRectangle.getArea() << endl;
cout << "Area of Square: " << newSquare.getArea() << endl;
cout << "Area of Triangle: " << newTriangle.getArea() << endl;
system("pause");
}
Rectangle::Rectangle(double newLength, double newWidth) : Shape (4, 2*(length*width))
{
length = newLength;
width = newWidth;
}
double Rectangle::getArea()
{
return (2*(length * width));
}
Square::Square(double side, double area) : Shape (3, side*side)
{
Shape rect(side, area);
}
Triangle::Triangle(double newBase, double newHeight) : Shape(3, 0.5 * (side*side))
{}
double Triangle::getArea()
{
return ((1 / 2) * (base * height));
}
Explanation / Answer
#include<iostream>
using namespace std;
class Shape {
protected:
int numSides = 0;
int area = 0;
public:
Shape() {
numSides = 0;
area = 0;
}
Shape(double numSides, double area): Shape() {
}
double getArea() {
return area;
}
};
class Rectangle: public Shape {
private:
double length,width;
public:
Rectangle(double length, double width);
double getArea();
};
class Square: public Shape {
private:
double side;
double area;
public:
Square(double newSide, double newArea);
double getArea();
};
class Triangle: public Shape {
private:
double base,height;
public:
Triangle(double base, double height);
double getArea();
};
int main() {
Rectangle newRectangle(3, 5);
Square newSquare(2, 3);
Triangle newTriangle(5, 4);
cout << "Area of Rectangle: " << newRectangle.getArea() << endl;
cout << "Area of Square: " << newSquare.getArea() << endl;
cout << "Area of Triangle: " << newTriangle.getArea() << endl;
}
Rectangle::Rectangle(double newLength, double newWidth): Shape(4, 2 * (length * width)) {
length = newLength;
width = newWidth;
}
double Rectangle::getArea() {
return (2 * (length * width));
}
Square::Square(double nside, double narea): Shape(3, nside*nside) {
side = nside;
area = narea;
}
double Square::getArea() {
return (side*side);
}
Triangle::Triangle(double newBase, double newHeight): Shape(3, 0.5 * (base * height)) {
base = newBase;
height = newHeight;
}
double Triangle::getArea() {
return ((1 / 2.0) * (base * height));
}
/*
sample output
Area of Rectangle: 30
Area of Square: 4
Area of Triangle: 10
*/
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.