Answer:
Check the attached image for code screenshot and output.
Step-by-step explanation:
#######################################
Rectangle.cpp
#######################################
#include "Rectangle.h"
Rectangle::Rectangle() {
length = 0;
width = 0;
}
Rectangle::Rectangle(double newLength, double newWidth) {
length = newLength;
width = newWidth;
}
void Rectangle::setLength(double l) {
length = l;
}
void Rectangle::setWidth(double w) {
width = w;
}
double Rectangle::getLength() {
return length;
}
double Rectangle::getWidth() {
return width;
}
double Rectangle::computeArea() {
return length * width;
}
double Rectangle::computePerimeter() {
return 2 * (length + width);
}
Rectangle Rectangle::operator++ () {
length++;
width++;
return *this;
}
Rectangle Rectangle::operator++ (int) {
Rectangle r(length, width);
++length;
++width;
return r;
}
Rectangle Rectangle::operator-- () {
if(length > 0) {
length--;
}
if(width > 0) {
width--;
}
return *this;
}
Rectangle Rectangle::operator-- (int) {
Rectangle r(length, width);
if(length > 0) {
length--;
}
if(width > 0) {
width--;
}
return r;
}
Rectangle Rectangle::operator- (Rectangle other) {
if(length > other.length && width > other.width) {
length--;
width--;
} else {
cout << "invalid operation. Subtrated Rectangle is bigger" << endl;
}
return *this;
}
bool Rectangle::operator==(Rectangle other) {
return (length == other.length) && (width == other.width);
}
bool Rectangle::operator!=(Rectangle other)
void Rectangle::printDetails() {
cout << "Rectangle Report" << endl;
cout << "Dimensions: " << length << " X " << width << endl;
cout << "Area: " << computeArea() << endl;
cout << "Perimeter: " << computePerimeter() << endl;
cout << "********************" << endl;
}
#######################################
Rectangle.h
#######################################
#include<iostream>
#include<iomanip>
using namespace std;
class Rectangle {
double length, width;
public:
Rectangle();
Rectangle(double newLength, double newWidth);
void setLength(double l);
void setWidth(double w);
double getLength();
double getWidth();
double computeArea();
double computePerimeter();
Rectangle operator++ ();
Rectangle operator++ (int);
Rectangle operator-- ();
Rectangle operator-- (int);
Rectangle operator- (Rectangle r);
bool operator== (Rectangle r);
bool operator!= (Rectangle r);
void printDetails();
};
#######################################
main.cpp
#######################################
#include "Rectangle.h"
// Ask the user to type in a length and width and
// create an object called rect2 of the rectangle class
// See output for format
cout << "Enter the length of rectangle 3: ";
cin >> l;
cout << "Enter the width of rectangle 3: ";
cin >> w;
Rectangle rect3(l, w);
cout << endl;
cout.setf(ios::fixed);
cout.precision(1);
// Using the member function in the class, print rect1, rect2,
// and rect3 details in that order
rect1.printDetails();
rect2.printDetails();
rect3.printDetails();
cout << endl;
// Print each rectangle in the format shown on the output
cout << "Rectangle 1: " << rect1.getLength() << " X " << rect1.getWidth() << endl;
cout << "Area: " << rect1.computeArea() << " Perimeter: " << rect1.computePerimeter() << endl;
cout << "Rectangle 2: " << rect2.getLength() << " X " << rect2.getWidth() << endl;
cout << "Area: " << rect2.computeArea() << " Perimeter: " << rect2.computePerimeter() << endl;
cout << "Rectangle 3: " << rect3.getLength() << " X " << rect3.getWidth() << endl;
cout << "Area: " << rect3.computeArea() << " Perimeter: " << rect3.computePerimeter() << endl;
if(rect2 == rect3) {
cout << "rectangle 2 and 3 are same." << endl;
} else {
cout << "rectangle 2 and 3 are not same." << endl;
}
cout << "After incrementing rectangle 2: ";
rect2++;
rect2.printDetails();
return 0;
}