Как интерфейсы решают проблему круга и эллипса?C++

Программы на C++. Форум разработчиков
Anonymous
Как интерфейсы решают проблему круга и эллипса?

Сообщение Anonymous »

Иногда говорят, что интерфейсы решают несколько проблем объектно-ориентированного программирования, в частности проблему круга-эллипса. Это был бы этот интерфейс

Код: Выделить всё

class IEllipse {
public:
virtual double GetXRadius() const = 0;
virtual double GetYRadius() const = 0;
virtual void SetXRadius(double r) = 0;
virtual void SetYRadius(double r) = 0;
}
Но тогда у нас все равно будет такая проблемная функция, которая работает для некоторых реализаций IEllipse, но не для реализации круга (которая подключает как SetXRadius, так и SetYRadius< /code> в тот же радиус переменной хранилища):

Код: Выделить всё

std::string SerializeDestructively(IEllipse& ellipse) {
std::stringstream s;
s 

Подробнее здесь: [url]https://stackoverflow.com/questions/78744438/how-do-interfaces-solve-the-circle-ellipse-problem[/url]

Вернуться в «C++»