C/C++

Программирование с использованием дружественных классов и методов.

Создать два класса: круг (Circle, содержит поле радиус) и квадрат. Описать функцию, определяющую фигуру с наименьшей площадью и выводящую информацию о ней на экран, как дружественную.
AF
Alex Fursa
76
#include <iostream>
#include <iomanip>
using namespace std;
class Circle {
public:
Circle() : r(0) {}
void radius(const double x) { r = x; }
double radius()const { return r; }
double area()const { return pi * r * r; }
void show()const {
cout
<< "Радиус круга: " << r << '\n'
<< "Площадь круга: " << area() << '\n';
}
private:
double r;
inline static const auto pi = 3.1415926535897932;
};
class Square {
public:
Square() : s(0) {}
void side(const double x) { s = x; }
double side()const { return s; }
double area()const { return s * s; }
void show()const {
cout
<< "Сторона квадрата: " << s << '\n'
<< "Площадь квадрата: " << area() << '\n';
}
private:
double s;
friend void compare(const Circle& c, const Square& s) {
const auto sc = c.area();
const auto ss = s.area();
sc < ss? c.show() : s.show();
}
friend void compare(const Square& s, const Circle& c) {
const auto ss = s.area();
const auto sc = c.area();
ss < sc? s.show() : c.show();
}
};
int main() {
Circle c;
c.radius(1.75);
Square s;
s.side(3.25);
system("chcp 1251 > nul");
cout << fixed << setprecision(4);
compare(c, s);
system("pause > nul");
}
ПR
Павло Ranger
84 033
Лучший ответ