2009-08-13 7 views
4

Я что-то новое, неохотное преобразование в C++ с фона Pascal, Ruby и PHP. Я не работал с Паскалем с нескольких месяцев пыток с помощью «Delphi Turbo»; с тех пор я практически ел и спал Ruby и PHP. Я уже хорошо знаком с объектно-ориентированным программированием и множеством различных предметов.Ресурсы, чтобы узнать сам C++, а не основы программирования?

Моя главная беда в том, что я уже знаю азы программирования C/C++, менее реальный опыт работы с C++. Я работал с C достаточно долго, чтобы понять, что даже без макросов и т. Д. Я не хотел работать с ним. (Некоторое отвращение было от поддержки приложения CGI на C, когда привыкли к автоматическому управлению строкой Pascal.) Я знаю, что достаточно C++, чтобы быть опасным для меня и для всех, кто еще не достаточно для того, чтобы использовать мой «код».

Мне бы очень хотелось, чтобы вы хорошо понимали C++ для использования таких библиотек, как Crypto ++ и Boost, без серьезных проблем или глубоких знаний о тонкостях языка. Мне просто нужно выяснить, как работать с C++, не убивая себя (либо с C++, либо с давней неприязнью, с которой я уже сражаюсь).

Каковы эффективные ресурсы, которые будут учить меня C++, не предполагая, что я должен быть retaught всех основ программирования? Я бы предпочел не переучивать понятия, которые я уже знаю, если парадигма в C++ существенно не отличается. Я тоже учился в свое время,, поэтому не рекомендую мне достаточно сложного книжного комплекса, чтобы мне нужно было объяснить гуру, пожалуйста! И У меня есть эффективный бюджет в $ 0 для обучения C++, поэтому, пожалуйста, оставляйте предложения для качественных онлайн-ресурсов или книг, достаточно общих, чтобы я мог найти их в библиотеке.

ответ

6

Read Эффективное использование C++ Скотт Мейерс - это хорошее руководство для обходя основы C++ и показывая, как писать и использовать «правильный» C код

+1

Не забывайте больше Эффективный C++ и эффективный STL –

0

Здесь ++ является ссылка на вопрос с ответами, которые должны помочь вы.

https://stackoverflow.com/questions/1227764/i-need-to-improve-my-c-skills-fast-is-this-realistically-possible/1227805#1227805

Для эффективного материала можно найти в Интернете Cplusplus.com имеет довольно хорошие ссылки и информацию.

Если вы можете найти книгу «C++ Common Knowledge» (Stephen Dewhurst) в библиотеке или дешево в Интернете, я бы добавил, что в список, размещенный по ссылке StackOverflow выше, а также «Язык программирования C++» (Stroustrup). Прохождение вопросов под тегом C++ прямо здесь, на SO, должно дать вам несколько хороших указателей и примеры кода, чтобы помочь вам.

2

Я могу дать вам пару ключевых слов, вы можете захотеть исследовать более подробно:

  • RAII (. Есть довольно много метод, который гарантирует, что вы не должны беспокоиться об утечках памяти очень удобно)
  • Обобщенное программирование (The STL в частности. Эксперимент с итераторы и стандартных алгоритмов библиотеки, и посмотреть, насколько мощным эти абстракции.Они ключевой частью того, что мне нравится C++)
  • функторов (Возможно, слишком простые сами по себе, но так, как они могут быть использованы вместо указателей на функции с алгоритмами упомянутых выше интересно)

И просто ознакомьтесь с шаблонами и «мягкими» формами метапрограммирования шаблонов. (Классы свойств, например, и (частично) специализации.

И просто держать глаз на вопросах C++ здесь на SO. Много интересных тем регулярно воспитаны.

Но самый лучший совет, вероятно, чтобы он полностью отличался от C. Забудьте все, что вы узнали о том, как использовать C. Он либо не применяется в C++, либо приводит к утере кода, который труднее читать и поддерживать.

Это интересный язык в его а также имеет ряд уникальных возможностей. Используйте их, и на самом деле это может быть fun для работы с C++. Рассматривайте его как перенастроенную Java, PHP или C, и это просто заставит вас бросить.

+0

+1 один за совет забыть C при выполнении C++. – sbi

4

Я очень рекомендую Stroustup: язык программирования C++ (третье издание). Как автор C++ он авторитет на языке, и книга полезна как ссылка, так же как и для изучения языка. Достаточно распространено, что у большинства хороших библиотек общего назначения будет копия. Он довольно подробно разбирается во всех особенностях C++, включая объяснения того, почему на этом языке были сделаны некоторые дизайнерские решения. Лично я считаю, что это лучшая книга для программистов, изучающих C++.

После того, как вы хорошо владеете ядром C++, книга Дэвида Абрахама и Алексея Гуртовой, C++ Template Metaprogramming, углубляется и дает множество примеров того, как система шаблонов C++ позволяет вам выполнять сложное программирование во время компиляции, ценное умение в наши дни. Это немного менее распространено, но вы, вероятно, можете найти его в университетской библиотеке.

+0

Ой, межбиблиотечный абонемент говорит мне, что 2 копии были потеряны, 2 не могут быть проверены, а 1 уже выведен; мы увидим об этом в ближайшем будущем. –

2

Вам необходимо написать код. Много кода на C++. Нет никакой замены. Вам также нужно прочитать хороший код.

Я согласен с предложением для книг Скотта Мейерса. Это очень хорошо.

Часть вашего обучения будет переходом от процедурного программирования к OO.

+0

Тим, я пишу очень мало ОО в наши дни, Конечно, я наследую, но мало что из этого полиморфно. C++ - это язык с несколькими парадигмами, и способность сочетать многие парадигмы - одна из самых сильных сторон. – sbi

+0

Человек спрашивал о C++ и упоминал о повышении. Если вы хотите использовать C++, как это C, хорошо, но я думаю, что другие хотят использовать лучшие функции языка. – Tim

1

Я настоятельно рекомендую книгу «Общие знания С ++» Стивена К. Девхерста. Не знаю, достаточно ли это достаточно для того, чтобы его можно было найти в библиотеке (это не мое, но моя библиотека отсасывает компьютерные книги, срок которых не 5-10 лет), но он отлично справляется с сложностью аспекты C++ и сделать их легко понятными, не опуская ничего для новичков. Определенно стоит инвестиций.

Цитирую из задней части книги:

Эта книга для вас, если

  • Ты не «пустышка», и вам нужно быстро получить до скорости в промежуточном на продвинутый C++
  • У вас был некоторый опыт программирования на C++, но чтение промежуточных и продвинутых книг на C++ происходит медленно
  • У вас был вводный курс на C++, но вы обнаружили, что все еще не можете следовать ваши коллеги, когда они описывают их проекты и код C++
  • Вы опытный программист на C или Java, но у вас еще нет опыта разработки нюансированного кода и дизайна на C++
  • Вы специалист по C++ и вы ищете альтернативу отвечать на одинаковые вопросы от ваших менее опытных коллег снова и снова

C++ Общеизвестности охватывает основную но непонятную тему C++ программирование и дизайн в то время как , отфильтровывая ненужную сложность в обсуждение каждой темы. То, что осталось , представляет собой ясную дистилляцию необходимых для производства программ C++ , представленных в авторском товарном знаке, занимающем внимание, привлекательный стиль.

+0

Да, это действительно хорошая/полезная книга. Мне нравятся книги Дьюхерста, почему-то многие этого не делают. Опять же, я считаю, что сочинение Страустрапа непростительно, и многие из них бредит. – Dan