Сообщение от impersonalis
можно подробней?
|
можно.
1. непоследовательность: язык С++ создавался с учетом совместимости с Си, из-за чего унаследовал недостатки дизайна последнего, НО...
С++ не только дополняет правила Си, но и МЕНЯЕТ их.
пример: определение struct, enum, union в Cи и в C++ имеют разный вид.
2. части с пересекающейся функциональностью (помним про Бритву Оккама: не умножать сущности без необходимости)
2.1
пример: препроцессор и шаблоны позволяют генерировать код. это два разных пути, для, по сути, одного и того же.
2.2 разделение на файлы кода и заголовков так же логически испорчено.
примеры:
в заголовках могут быть не только объявления, но и определения (inline) и шаблоны (которые вообще рекомендуется располагать именно там).
аналогично объявления функций и классов могут быть в файлах кода и доступ можно получить к ним через extern.
это то, что вспомнил с наскоку, думаю можно часами перечислять.