Здравствуйте, maks1180, Вы писали:
V>>Вообще это плюс. В хидере у тебя интерфейс, в сишнике имплементация.
M>Да, только все современные языки такие как C#, Java ушли от этого "так называемого плюса".
Вот только в Java и в C# (из-за этого "ушли") уровень вложенности пар фигурных скобок — просто зашкаливает.
Иногда — смотришь в то же окошко IntelliJ IDEA (Java) — думаешь: как же в плюсах всё просто сделано...
Здравствуйте, maks1180, Вы писали:
M>Для меня основной минус с++ от которого хотелось бы избавиться — это дублирование кода. M>Приходиться одно и тоже писать (название функций) в h и в cpp файлах. И менять тоже нужно в двух местах.
Это далеко не основной минус С++. У С++ огромное количество разнообразных минусов, граблей и костылей. Люди с 20 годами опыта периодически продолжают открывать для себя все новые и новые грабли, наступая на них, зато сколько возможностей и новых открытий. За это мы и любим и одновременно ненавидим С++.
Здравствуйте, netch80, Вы писали:
N>У C++ нет, он язык и компилятор. У конкретной софтины в конкретном месте вполне может быть, и происходило неоднократно совсем недавно, ещё детали не стёрлись.
Наличие С++ тулчейна на целевой платформе это большое исключение, особенно если это embedded. В мире всякое бывает, но это действительно очень крайний случай.
Здравствуйте, maks1180, Вы писали:
M>Читать только приятнее, и то не всегда, например значение аргументов (функции) по умолчанию написаны только в h файле, и поэтому в cpp их вообще не видно. M>Менять же без IDE жутко неудобно в 2-х местах нужно это делать.
О, это-то неудобно? Неудобно это когда у вас есть с пяток перегрузок, все из них — по сути просто шлюзы передающие значения по умолчанию. Чтение документации вообще никак не говорит, какое из них конкретно будет передано. И единственный способ узнать точно — полезть собственно в исходники (и благо когда они есть).
Ну а в общем — а зачем в реализации знать значение по умолчанию? Она должна работать и без этого как бы.
Здравствуйте, maks1180, Вы писали:
M>Зачем язык менять ? Проще сделать предкомпилятор, который будет создавать cpp/h из одного файла. M>Неужели нет такого ещё ?
Речь идёт о makeheaders. Это — часть системы управления конфигурацией программ Fossil. История программы восходит к 1993 году, когда Дуэйн Ричард Хипп (тот самый программист, который создал SQLite) написал её для собственных нужд. Эта программа не особенно сложна: вся она помещается в довольно большом C-файле. Но своё дело она делает: сканирует директорию и создаёт для всего, что найдёт, заголовочные файлы.
А мне нравится, что есть хидер, в котором можно увидеть интерфейс класса кратко, а если нужны детали перейти в cpp.
Опять же, если оч хочется можно сделать реализацию методов в хидере.
PS: #define-ами можно постараться не пользоваться вообще.