![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() |
Гость_Mike_* |
![]() ![]()
Сообщение
#1
|
Guests ![]() |
Собираюсь начать изучать С++, может кто сказать ссылки на бесплатные учебники по нему
|
|
|
![]() |
Гость_Ireul_* |
![]()
Сообщение
#2
|
Guests ![]() |
C++ - язык опытного профессионала, его ни в коем случае нельзя путать с С - это, вопреки многим утверждениям, очень разные языки, и, заметьте, малосовместимые(хотя это могут и не понять те, кому не приходилось адаптировать код под С++ из С, чтобы работал, а не просто компилился и падал).
Почему язык опытного профессионала - хотя бы потому, что кроме нагромождения шаблонов и макросов, у него есть недостаток, который убьёт любого новичка, и дважды убьёт любого любителя паскаля - его сообщения об ошибках совершенно невменяемы, могут вылезать где угодно - в точке где вы впервые использовали ошибочно декларированный код, несмотря на абсолютно правильное использование, когда реальная ошибка в декларации. Когда же вы неправильно использовали - ошибка может вылезти в декларации, причём нередко в собственных библиотечных хидерах. При неправильном использовании шаблонных классов STL вы можете получить сообщение об ошибке на 18 строк, загромождённое шаблонами чуть более чем полностью, и совершенно ничего не проясняющее. Причём ошибка укажет не на ту точку, где вы реально допустили ошибку. Это - настоящее лицо С++, позволяющее избегать частого повторения стереотипных и смертельных ошибок, характерных для С, но изобретающее вместо этого сверххитроумные шарады "попробуй найди где ты угловую скобку забыл, а то не откомпилюсь". И он даже не попытается вам сказать, что две подряд угловые скобки понял как оператор сдвига, а не две закрывающих шаблоны отдельных угловые скобки. А доложит о скобках. Причём в точке применения ошибку покажет, а не в точке декларации. Вот такой вот он... Поэтому он требует тщательного изучения перед применением, иначе служит хорошим орудием самоубийства. И оно стоит того - за счёт несравнимого объёма возможностей. Если этому языку не хватает какой-либо умной концепции - её можно реализовать самими средствами языка - так в С++ имеются и лямбды, и функциональное программирование, и ооп, и процедурность тоже никуда не делась - и никто не мешает применять всё это вместе, сохраняя эффективность. |
|
|
![]() ![]() |
![]() |
Текстовая версия | Сейчас: 15th June 2025 - 15:40 |