The Rectangle Class

1 minute read

The code has been modified slightly and now uploaded to the site.

A UML diagram is not provided.

Question

<— Return Home

91.cpp

#include <iostream>
#include <iomanip>
#include "Rectangle91.h"
using namespace std;

// REMEMBER TO COMPILE BOTH 91.cpp AND Rectangle91.cpp AT THE SAME TIME!!!
int main(){
    Rectangle91 rectangle(4, 40);
    Rectangle91 rectangle2(3.5, 35.9);
    std::cout << rectangle.getWidth() << "\n";
    std::cout << rectangle.getHeight() << "\n";
    std::cout << rectangle2.getWidth() << "\n";
    std::cout << rectangle2.getHeight() << "\n";
    std::cout << rectangle.getArea() << "\n";
    std::cout << rectangle.getPerimeter() << "\n";
    std::cout << rectangle2.getArea() << "\n";
    std::cout << rectangle2.getPerimeter() << "\n";
}

<— Return Home

Rectangle91.h

#ifndef Rectangle91_H
#define Rectangle91_H

class Rectangle91{
    public:
        Rectangle91();
        Rectangle91(double theWidth, double theHeight);
        double getWidth();
        double getHeight();
        double getArea();
        double getPerimeter();
    
    private:
        double width;
        double height;
};

#endif

<— Return Home

Provided below is a second version of the same coding question.

91V2.cpp

#include <iostream>
#include "Rectangle91V2.h"

int main(){
    Rectangle r1;
    std::cout << r1;
    std::cout << r1.getPerimeter() << std::endl;
    std::cout << r1.getArea() << std::endl;
    Rectangle r2(5, 10);
    std::cout << r2;
    std::cout << r2.getPerimeter() << std::endl;
    std::cout << r2.getArea() << std::endl;
    return 0;
}

<— Return Home

Rectangle91V2.h

#ifndef RECTANGLE91V2_H
#define RECTANGLE91V2_H

class Rectangle{
    public:
        Rectangle();
        Rectangle(double x, double y);

        friend std::ostream & operator << (std::ostream & out, Rectangle & r);

        double getArea();

        double getPerimeter();

    private:
        double width;
        double height;
};

double Rectangle::getPerimeter(){
    return (2 * width) + (2 * height);
}

double Rectangle::getArea(){
    return width * height;
}


std::ostream & operator << (std::ostream & out, Rectangle & r){
    out << "Width: " << r.width << "\nHeight: " << r.height << std::endl;
    return out;
}

Rectangle::Rectangle(double x, double y){
    width = x;
    height = y;
}

Rectangle::Rectangle(){
    width = 1;
    height = 1;
}

#endif

<— Return Home