Здравствуйте, Programador, Вы писали:
P>Если есть множественное наследование, то должно быть и виртуальное. А зачем нужно множественное? да затем что и простое.
P>Кстати и без простого можно и обойтись
P>P>struct B
P>{ int x,y;
P>};
P>struct D
P>{ B B;
P> int z;
P>};
P>
Без наследования можно обойтись. И даже нужно, полностью сохраняя при этом идею полиморфизма. Но не в C++, Java, C# и тому подобных. Сама идея наследования как
расширения функциональности является глубоко порочной и противоречит сущности нашего мира. Особенный LOL вызывают попытки порождения производных классов от std::string, std::vector<MyType> и тому подобных. Наследование должно быть только
специализацией функциональности и ничем более. Короче, нет виртуальных функций в базовом классе? — наследование запрещено. Вот так должно быть IMSO. Но тогда это уже и не наследование получается, а некая динамическая специализация. А тот беспредел, что сейчас имеется, в конечном итоге приводит к обилию нелепых конструкций, типа ((my_string*)&std_str)->my_compare_with(b);