Re[4]: Недоучки по настоящему ООП не освоили (из-за Basic и
От: rg45 СССР  
Дата: 01.09.25 11:01
Оценка:
Здравствуйте, so5team, Вы писали:

R>>И я бы не сказал, что это какая-то широкораспространённая проблема, которая создаёт массовые неудобства.


S>Речь не про проблему, а про определения и следование этим определениям.


А из какого определения (ООП или полиморфизма) следует, что вызовы consume_a и consume_b обязаны дать разные результаты? Что мешает реализовать D::f, например, вот так:

http://coliru.stacked-crooked.com/a/fe324739d29727b0

struct D : A, B
{
  void f() override {
    A::f();
    B::f();
    std::cout << "D::f" << std::endl;
  }
};


Из общих соображений: имя функции в совокупности с набором формальных параметром задают определенную семантику. Если одна и та же семантическая операция даёт один и тот же результат для одного и того же объекта, даже если она выполнена через разные интерфейсы, то как это может противоречить принципам ООП? Как по-мне, то это просто частный случай, а не нарушение каких-то общих требований.
--
Справедливость выше закона. А человечность выше справедливости.
Отредактировано 01.09.2025 11:20 rg45 . Предыдущая версия . Еще …
Отредактировано 01.09.2025 11:19 rg45 . Предыдущая версия .
Отредактировано 01.09.2025 11:18 rg45 . Предыдущая версия .
Отредактировано 01.09.2025 11:10 rg45 . Предыдущая версия .
Отредактировано 01.09.2025 11:07 rg45 . Предыдущая версия .
Отредактировано 01.09.2025 11:04 rg45 . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.