Я уже 2 дня как начал осваивать этот великий и могучий язык, но некоторые вещи до меня не доходят.
Допустим я создал несколько функций. Продублировал их определение в *.h (Но я очень туп и сразу написать то что надо не могу) Поэтому решил их изменить. Потом еще и еще... И каждый раз нужно искать все это в *.h файлах чтобы востановить соответвие. Когда это проделываешь несколко раз, то возникает мягко говоря легкое раздражение. Неужели нельзя как то упростить. Я понимаю что хидер файлы нужны компилятору, линкеру, или еще хрен знает чему, но почему человек то должен набирать два раза одно и тоже? Где обещанная красота и лаконичность С++? В конце концов почему не создать небольшую утилиту которая бы парсила *.cpp и автоматом выдирала бы определения в *.h, и затем подавала бы все это вместе компилеру? Такая утилита имхо не очень сложна в реализации. И почему такие очевидные вещи не пришли еще кому-то в голову. Или я чего-то не понимаю? Так объясните... |
to bilytur
Можно и юез хеадер-файла. Компилятору он НЕ нужен:) Предположим, Вы пишите прогу из двух С файлов. В одном из них хотите использовать функции другого, но дублировать их описания в обоих файлах влом. Вот здесь может пригодится H-файл. Описываем функцию в этом файле, подключаем к обоис С и кайфуем :) Прогу для ывдирания писать НЕ надо. Просто надо хеадеры писать :) [s]Исправлено: bgg0408, 2:45 7-09-2003[/s] |
Никто тебе не запрещает писать реализацию и объявление в одном файле. Просто это как бы стандарт - разработчиков много и чтобы не было какой-либо путаницы делают так. Здесь эта тема уже обсуждалась, посмотри здесь
http://forum.oszone.net/topic.cgi?fo...&topic=424 [s]Исправлено: Megabizon, 19:35 7-09-2003[/s] |
Не мужики я понял что декларации нужны. В одном ли файле или в разных сути это не меняет. Я не понял зачем вообще их нужно писать. Вернее почему это нужно делать вручную.
Еше раз вкратце, идея такая, допустим есть файл: >---------file.cpp #include "file.h" int main(){ //... func1(a,b,c); func2(a,b,c,); func3(a,b,c); } void func1(int a , int b, int c){ //... } void func2(int a , int b, int c){ //... } void func3(int a , int b, int c){ //... } <---------eof Запускаем нашу утилитку например так: cpp2h *.cpp *.h Получаем: >---------file.h int main(); void func1(int a , int b, int c); void func2(int a , int b, int c); void func3(int a , int b, int c); <---------eof Кстати строчку #include "file.h" можно добавлять куда угодно как обычно. После этого ты вдруг понял что func1() должна возвращать значение, у func2() должно быть 4 аргумента, func3() вобще не нужна, а нужны func7() и func8() ok. Изменяешь только один раз один файл: file.cpp и ВСЕ! А если нашу утилитку запускать автоматически каждый раз перед компиляцией то можно кайфовать вобще всю оставшуюся жизнь. :) зы: На этапе разработки это дело бы имхо сильно упростило бы написание. Ну а если дело дойдет до продажи *.obj. Там можно и вручную подкоректировать h-файлы. Вставить копирайты там и.т.д. зызы: Возможно здесь закралась какя-то ошибка? зызызы: А может уже давно кто-то написал что-то подобное? |
Время: 12:11. |
Время: 12:11.
© OSzone.net 2001-