fk0> Абстракция в коде может быть воплощена либо в абстрактном базовом классе, fk0>либо в шаблоне. В большинстве случаев более рационален подход с шаблоном, так fk0>как даёт связывание/диспетчеризацию в момент компиляции, а не в момент исполнения. fk0>Кроме того, в момент разворачивания шаблона он обладает полнотой знания о переданном fk0>ему классе-параметре, что тоже может использовать и что не доступно в варианте fk0>с наследованием.
У меня большой опыт как на с/с++, так и на c#.
На c# намного удобнее читать/писать бизнес логигу (или другую логику, где много разных сущностей и классов), так как не приходиться лазить по 2-м файлам, а всё можно исправить и увидеть в одном файле.
Хотелось бы иметь возможность на с++ такую же как на c#.
Использование абстракций и шаблонов, что-бы описать всё в одном файле, сильно усложнит код — это не то!
c# — это современный язык, в котором учли, что более удобно иметь 1 файл, чем 2. Не пойму, почему с++ не хочет дать такую возможность ? Оставить возможность h/cpp тем кому нравиться это и для совместимости.