34 / 0 / 1
Регистрация: 19.08.2013
Сообщений: 246
|
|
1 | |
Какую ide лучше использовать для c++27.07.2014, 12:18. Показов 11811. Ответов 51
Метки нет (Все метки)
0
|
27.07.2014, 12:18 | |
Ответы с готовыми решениями:
51
Какую IDE лучше выбрать для работы с формами в С++? Какую бесплатную среду (IDE) разработки для С++ 2013/2014 года выпуска лучше скачать? Какую библиотеку лучше использовать для работы с файлами в с++? Простая графика для Пятнашек. Какую библиотеку лучше использовать ? |
3257 / 2059 / 351
Регистрация: 24.11.2012
Сообщений: 4,909
|
|
27.07.2014, 12:22 | 2 |
0
|
Модератор
|
|
27.07.2014, 15:31 | 3 |
Я за Code::Blocks - вот ссылка инсталлера для Windows 2000/XP/Vista/7/8 (там сразу в комплекте всё, что нужно).
На мой взгляд, лучший вариант для новичка:
0
|
Одессит
|
|
27.07.2014, 18:13 | 6 |
ranebull, я использую code blocks в linux mint, не знаю есть отличия с виндовской версией, но при заходе Plugins/Manage Plugins, могу установить плагины, которые я отдельно скачал. Т.е. программа сама не качает. А с офсайта не могу найти где скачать. Вот разве что ссылка на список плагинов: http://wiki.codeblocks.org/ind... re_Plugins
0
|
63 / 64 / 11
Регистрация: 27.02.2013
Сообщений: 1,116
|
|
27.07.2014, 18:16 | 7 |
просто интересно, а почему никто не говорит о наиболее популярной (вроде как) vs?
0
|
27.07.2014, 18:26 | 11 |
Так холивара и троллинга ради. Опять же, никто не считает себя нубом (ну разве что на словах, чтобы спокойно морозить всякую фигню)
Хоть режьте меня, но я считаю, что новичку IDE не нужна. Блокнот (Vim/Emacs/Sublime/Notepad++/SciTE/what-you-like) и консоль. Иначе на выходе получаются быдлокодеры, которые без приснопамятной студии даже прогу не соберут.
0
|
Модератор
|
|
27.07.2014, 18:33 | 12 |
Ну, можно и так, да.
0
|
63 / 64 / 11
Регистрация: 27.02.2013
Сообщений: 1,116
|
|
27.07.2014, 18:35 | 13 |
а чем студия так уж помогает, что без нее потом типа никак? всего лишь подсветка синтаксиса и удобная компиляция с выводом всех ошибок... как раз таки особенно для начинающих это довольно удобно
0
|
Модератор
|
|
27.07.2014, 18:38 | 14 |
Спорно. Как будто научившись подцеплять компилятор к блокноту, сразу станешь гуру!
Новичку, на мой взгляд, как раз лучше скачать простенькую IDE и спросить на форуме как создать свой первый проект. После этого создать проект, написать свой первый "Hello World!", жмакнуть F9 и радоваться, что уже что-то получается. После этого можно целиком сосредоточиться на книжке и упражнениях.
0
|
27.07.2014, 18:42 | 15 |
Давайте отвечу обоим двум.
Если человеку с самого начала рассказать про 70-е, консоль и юникс, то мой личный опыт показывает, что у него мозги хотя бы работают в нужном направлении. А вот тем, что начал с "простенькой IDE", что такое Makefile и раздельная компиляция уже не объяснить никогда. Это как начать с Basic в качестве первого языка. (Больше чем уверен, что сейчас набигут толпы сертифицированных одинэсников, которые начинали не то что с QuickBasic, а с Лого.) Как говорил старик Дийкстра, "От своих студентов я требую, чтобы они не знали Фортран. И я не шучу." Ну и самое главное: я использую любую IDE только для GUI-проектов, хотя вот на Qt опять же пишу под Ubuntu с Sublime в качестве редактора (простите меня, любители nano и joe). И как это я без студии и NetBeans прожил?
0
|
19409 / 10028 / 2443
Регистрация: 30.01.2014
Сообщений: 17,678
|
|
27.07.2014, 18:45 | 16 |
Категорично слишком. Это вообще сугубо индивидуально: хочет человек развиваться и выходить из зоны комфорта или нет. С чего конкретно он начал, уже не столь важно.
2
|
27.07.2014, 18:52 | 17 |
DrOffset, может и так. Но вы учтите, какая клоака эти ваши российские провинциальные вузы. Я читал университетские учебники, авторы которых (кандедаты в дохтора) явно ничего сложнее хеловорда не писали. Где все лабы состоят в создании проектика под студию.
Ну или вот ещё: сразу видно идиотию в виде #include <stdafx.h> (ну куда без них), int _tmain и прочих LPSTRZ. Откуда она по вашему? Не из-за того ли, что при использовании IDE надо "создать проект, написать свой первый "Hello World!", жмакнуть F9 и радоваться"? И дело ведь не в студии как таковой. Ослиные уши NetBeans, Eclipse и прочей мути будут торчать отовсюду. Добавлено через 2 минуты То есть вы серьёзно считаете, что начать прогать с Forth или Haskell - это то же самое, что с pascal и си? Синдром утенка кто-то отменил? Жалко не могу дать ссылку на подробный разбор того, как первый язык создателей языков повлиял на их детища. Вспомните Кернигана и Ричи со Страуструпом хотя бы.
1
|
Модератор
|
||||||||||||||||
27.07.2014, 18:58 | 18 | |||||||||||||||
Опять же спорно. Читаешь книжку, всё пошагово выполняешь:
Кликните здесь для просмотра всего текста
Раздельная компиляция Язык C++, как и С, позволяет и даже поощряет размещение функций программы в отдельных файлах. Как говорилось в главе 1, файлы можно компилировать раздельно, а затем связывать их с конечным продуктом — исполняемой программой. (Как прави* ло, компилятор C++ не только компилирует программы, но и управляет работой ком* поновщика.) При изменении только одного файла можно перекомпилировать лишь этот файл и затем связать его с ранее скомпилированными версиями других файлов. Этот механизм облегчает работу с крупными программами. Более того, большинство сред программирования на C++ предоставляют дополнительные средства, упрощаю* щие такое управление. Например, в системах Unix и Linux имеется программа make, хранящая сведения обо всех файлах, от которых зависит программа, и о времени их последней модификации. После запуска make обнаруживает изменения в исходных файлах с момента последней компиляции, а затем предлагает выполнить соответ* ствующие действия, необходимые для воссоздания программы. Большинство интег* рированных сред разработки (integrated development environment — IDE), включая Embarcadero C++ Builder, Microsoft Visual C++, Apple Xcode и Freescale CodeWarrior, предоставляют аналогичные средства, доступ к которым осуществляется с помощью меню Project (Проект). Рассмотрим простой пример. Вместо того чтобы разбирать детали компиляции, которые зависят от реализации, давайте сосредоточим внимание на более общих ас* пектах, таких как проектирование. Предположим, что решено разделить программу из листинга 7.12 на части и по* местить используемые ею функции в отдельный файл. Напомним, что эта программа преобразует прямоугольные координаты в полярные, после чего отображает резуль* тат. Нельзя просто вырезать из исходного файла часть кода после окончания функции main (). Дело в том, что main () и другие две функции используют одни и те же объяв* ления структур, поэтому необходимо поместить эти объявления в оба файла. При про* стом наборе объявлений в коде можно допустить ошибку. Но даже если объявления скопированы безошибочно, при последующих модификациях нужно будет не Забыть внести изменения в оба файла. Одним словом, разделение программы на несколько файлов создает новые проблемы. Кому нужны дополнительные сложности? Только не разработчикам С и C++. Для решения подобных проблем была предоставлена директива #include. Вместо того чтобы помещать объявления структур в каждый файл, их можно разместить в заголо* вочном файле, а затем включать его в каждый файл исходного кода. Таким образом, изменения в объявление структуры будут вноситься только один раз в заголовочный файл. Кроме того, в заголовочный файл можно помещать прототипы функций. Итак, исходную программу можно разбить на три части:
например, создается другая программа, которая пользуется теми же самыми функция* ми, достаточно включить в нее заголовочный файл и добавить файл с функциями в проект или список make. К тому же такая организация программы соответствует прин* ципам объектно-ориентированного программирования (ООП). Первый файл — заго* ловочный — содержит определения пользовательских типов. Второй файл содержит код функций для манипулирования типами, определенными пользователем. Вместе оба файла формируют пакет, который можно использовать в различных программах. В заголовочный файл не следует помещать определения функций или объявления переменных. Хотя в простейших проектах такой подход может работать, обычно он приводит к проблемам. Например, если в заголовочном файле содержится определе* ние функции, и этот заголовочный файл включен в два других файла, которые явля* ются частью одной программы, в этой программе окажется два определения одной и той же функции, что вызовет ошибку, если только функция не является встроенной. В заголовочных файлах обычно содержится следующее:
создают переменные, а только указывают компилятору, как создавать структурную пе* ременную, когда она объявляется в файле исходного кода. Подобно этому объявления шаблонов — это не код, который нуэдю компилировать, а инструкции для компиля* тора, указывающие, каким образом генерировать определения функций, чтобы они соответствовали вызовам функций, встречающимся в исходном коде. Данные, объяв* ленные как const, и встроенные функции имеют специальные свойства связывания (вскоре они будут рассмотрены), которые позволяют размещать их в заголовочных файлах, не вызывая при этом каких-либо проблем. В листингах 9.1, 9.2 и 9.3 показан результат разделения программы из листинга 7.12 на отдельные части. Обратите внимание, что при включении заголовочного файла используется запись "coordin.h", а не <coordin.h>. Если имя файла помещено в угловые скобки, компилятор C++ ищет его в той части базовой файловой системы, где расположены стандартные заголовочные файлы. Но когда имя файла представле* но в двойных кавычках, компилятор сначала ищет файл в текущем рабочем каталоге или в каталоге с исходным кодом (либо в другом аналогичном месте, которое зависит от версии компилятора). Не обнаружив заголовочный файл там, он ищет его в стан* дартном местоположении. Таким образом, при включении собственных заголовочных файлов должны использоваться двойные кавычки, а не угловые скобки. На рис. 9.1 показаны шаги по сборке этой программы в системе Unix. Обратите внимание, что пользователь только выдает команду компиляции СС, а остальные действия выполняются автоматически. Компиляторы командной строки g++, gpp и Borland C++ (Ьсс32 .ехе) ведут себя аналогичным образом. Среды разработки Apple Xcode, Embarcadero C++ Builder и Microsoft Visual C++ в сущности выполняют те же самые действия, однако, как упоминалось в главе 1, процесс инициируется по-друго* му, с помощью команд меню, которые позволяют создавать проект и ассоциировать с ним файлы исходного кода. Обратите внимание, что в проекты добавляются только файлы исходного кода, но не заголовочные файлы. Дело в том, что заголовочными файлами управляет директива #include. Кроме того, не следует использовать дирек* тиву #include для включения файлов исходного кода, поскольку это может привести к дублированным объявлениям.
Заголовочный файл должен включаться в файл только один раз. Это кажется простым тре- бованием, которое легко запомнить и придерживаться, тем не менее, можно непреднамеренно включить заголовочный файл несколько раз, даже не подозревая об этом. Например, предположим, что используется заголовочный файл, который включает другой заголовочный файл. В C/C++ существует стандартный прием, позволяющий избежать многократных включений заголовочных файлов. Он основан на использовании директивы препроцессора #ifndef (if not defined — если не определено). Показанный ниже фрагмент кода обеспечивает обработку операторов, находящихся между директивами #if ndef и #endif, только в случае, если имя coordin_h_ не было определено ранее с помощью директивы препроцессора #defіпе: #ifndef COORDIN_H_ #endif Обычно директива #def ine используется для создания символических констант, как в следующем примере: #define MAXIMUM 4096 Однако для определения имени достаточно просто указать директиву #def ine с этим именем: #define COORDIN_H_ Прием, применяемый в листинге 9.1, предусматривает помещение содержимого файла внутрь #ifndef: #ifndef COORDIN_H_ #define COORDIN_H_ // здесь размещается содержимое включаемого файла #endif Когда компилятор впервые сталкивается с этим файлом, имя coordin_h_ должно быть неопределенным. (Во избежание совпадения с существующими именами, имя строится на основе имени включаемого файла и нескольких символов подчеркивания.) В этом случае компилятор будет обрабатывать код между директивами #ifndef и #endif, что, собственно, и требуется. Во время обработки компилятор читает строку с директивой, определяющей имя coordin_h_. Если затем компилятор обнаруживает второе включение соогdin.h в том же самом файле, он замечает, что имя coordin_h_ уже определено, и пере- ходит к строке, следующей после #endif. Обратите внимание, что данный прием не предот- вращает повторного включения файла. Вместо этого он заставляет компилятор игнорировать содержимое всех включений кроме первого. Такая методика защиты используется в большин- стве стандартных заголовочных файлов С и C++. Если ее не применять, одна и та же структура, например, окажется объявленной в файле дважды, что приведет к ошибке компиляции.
заголовочного файла получается исполняемая программа. Ниже приведен пример ее выполнения: Enter the x and у values : 120 80 distance = 144.222, angle = 33.6901 degrees Next two numbers (q to quit) : 120 50 distance = 130, angle = 22.6199 degrees Next two numbers (q to quit) : q Кстати, хотя мы обсудили раздельную компиляцию в терминах файлов, в стандарте C++ вместо термина файл используется термин единица трансляции, чтобы сохранить более высокую степень обобщенности; файловая модель — это не единственный способ организации информации в компьютере. Для простоты в этой книге будет применяться термин "файл", но помните, что под этим понимается также и "единица трансляции". чего тут сложного?
1
|
sourcerer
|
27.07.2014, 19:04
#19
|
Не по теме: del
0
|
27.07.2014, 19:05 | 20 |
Да ничего сложного. Если вас заставить учить китайский, вы его и по надписям на освежителе воздуха выучите. Я же вам говорю: мой личный печальный опыт состоит в том, что все виденные мной выпускники матфака и факультета компбютерных технологий умеют только открыть студию и чегой-то там подмудрить. И не надо мне говорить, что дело не в IDE, а в прогнившей системе. Я вам открою тайну: никто из моих почти 100 сокурсников даже не догадывается, что IDE просто пишет Makefile за вас. И препод не догадывается. Им что, книжки читать запретили? Нет. Или вы станете отрицать, что вполне отличная IDE Delphi версии ну хотя бы 7 никак не виновата в том, что прямо в обработчиках кнопок вся логика программы?
0
|
27.07.2014, 19:05 | |
27.07.2014, 19:05 | |
Помогаю со студенческими работами здесь
20
Какую среду разработки лучше использовать новичку? Какую запись переменных в цикле for лучше использовать? Множество вершин треугольника - какую лучше структуру использовать? Какую лучше всего в наше время использовать графическую библиотеку? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |