#include <iostream>
class Square; // Forward declaration
class Rectangle {
private:
double width;
double height;
public:
Rectangle(double w, double h) : width(w), height(h) {}
// Declaring Square as a friend class
friend class Square;
double getArea() const {
return width * height;
}
};
class Square {
private:
double side;
public:
Square(double s) : side(s) {}
// This method can access private members of Rectangle
bool isLargerThan(const Rectangle& rect) const {
double squareArea = side * side;
return squareArea > (rect.width * rect.height);
}
};
int main() {
Rectangle rect(4.0, 5.0);
Square square(4.5);
std::cout << "Rectangle area: " << rect.getArea() << std::endl;
std::cout << "Is square larger? " << (square.isLargerThan(rect) ? "Yes" : "No") << std::endl;
return 0;
}