Suppose we have a Rectangle class that includes length and width attributes of t
ID: 3761940 • Letter: S
Question
Suppose we have a Rectangle class that includes length and width attributes of type int, both set by the constructor. Create an equals method for this class so that two rectangle objects are considered equal if:
a. They have the exact same length and width.
b. They have the same dimensions-that is, they are congruent.
c. They have the same shape-that is, they are similar.
d. They have the same perimeter.
e. They have the same area.
Are all of these definitions of equals valid, based on the criteria listed in Exercise 3?
Explanation / Answer
#include <bits/stdc++.h>
using namespace std;
class Rectangle{
public:
int length;
int breadth;
Rectangle(int l,int b){
length = l;
breadth = b;
}
int area(){
return length*breadth;
}
int perimeter(){
return 2*(length+breadth);
}
bool equals(Rectangle* r){
// They have the exact same length and width.
if (r->length == length && r->breadth == breadth)
return true;
// They have the same area
if (r->area() == area())
return true;
// They have the same perimeter
if (r->perimeter() == perimeter())
return true;
// They have the same shape-that is, they are similar.
if (r->length/length == r->breadth/breadth)
return true;
return false;
}
};
int main(){
Rectangle *r_1 = new Rectangle(6,3);
Rectangle *r_2 = new Rectangle(3,6);
cout << r_1->equals(r_2) << endl;
return 0;
}
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.