Здравствуйте, adontz, Вы писали:
GIV>>Почему невозможно? В языках допускающих множественное наследование это как раз не проблема
A>A>struct Bar1: virtual Object{};
A>struct Bar2: virtual Object{};
A>struct Foo : Bar1, Bar2{};
A>
A>А с другой стороны, делать все наследования виртуальными тоже не дело. Сторонние эффекты, от того что несколько наследников используют один и тот же базовый класс могут быть те ещё.
A>Тогда уже надо вводить два типа наследования, а это чревато ошибками понимания (если вообще будет хоть какое-то понимание того что происходит)
A>Об этом и писали по ссылкам которые я приводил.
С этим я совершенно согласен. Есть общий предок Object или его нет все проблемы связанные с множественным наследованием остаются на месте (и по мнению разработчиков дотнета не стоят выгод которые оно дает).
Я только говорил, что не вижу причин по которым именно System.Object мешает реализовать множественное наследование. Именно от System.Object сторонних эффектов не будет как бы его не использовали наследники. ИМХО достаточно написать в спецификации, что для объекта любого класса как бы он не наследовался подобъект System.Object будет только один. Для этого даже не надо явно вводить два типа наследования...