2009-06-02 2 views
8

Я не касаюсь C++ более чем через 8 лет. Недавно мне пришлось исправить некоторый код на C++, и, хотя я все еще могу кодировать, мне кажется, что я больше не принадлежу к лагерю программистов на С ++. Я не знаю никаких библиотек, не обращал внимания на новые особенности языка/улучшения/лучшие практики.Переучивать современные ресурсы C++?

Qt Creator и Qt кажется хорошим набором инструментов для того, что мне нужно сейчас, так как меня интересует в основном развитие кросс-платформы.

Что было бы хорошими ресурсами для кого-то вроде меня, чтобы быстро переучивать C++ и лучшие практики в кратчайшие сроки?

Я делаю в основном java и common lisp, тем временем, с короткими шагами к C, flex, Scala и Haskell.

+0

Возможно, здесь есть несколько хороших идей: http://stackoverflow.com/questions/777764/what-modern-c-libraries-should-be-in-my-toolbox/777779 –

+0

Обратите внимание, что некоторые из этих ответов не являются более актуальными в 2017 году! За последние 8 лет язык прошел долгий путь, плюс некоторые из предложенных ресурсов предшествовали этому вопросу почти на десятилетие. – einpoklum

ответ

6

Познакомьтесь с S.tandard T.emplate L.ibrary.

Познакомьтесь с повышением, если вы действительно находитесь на переднем крае.

Прочитайте книги «эффективный C++» и «эффективный STL» от scott meyers.

Прочитать "C++ faq lite".

(не necsissarily в таком порядке)

1

Сначала ознакомятся снова с указателями, ссылками и т.д.

Тогда я просто придерживаться Qt. Правила документации Qt и IIRC, контейнеры Qt еще эффективнее, чем STL. Тот факт, что код для вашего Qt GUI тогда еще более элегантен, также добавляет к призыву Qt. Добавьте к тому, что документы Qt также содержат много простых и некоторых относительно продвинутых примеров кода, с которыми вы можете играть, и вы должны быстро ускорить работу.

Было бы неловко знать/использовать STL/Boost. Но оставайтесь (далеко) от GTK.

+1

вы не забываете о указателях. это как кататься на бицикле, вы несколько раз ударились о землю и никогда не забудете об этом. подумайте об этом, вы также получите ту же самую свежую свободу воздуха ... – Javier

+1

Не говоря уже: забудьте о голых указателях. Умные указатели намного лучше. (ОК, я немного преувеличиваю, но у умных указателей есть способы вернуть пустой указатель.) –

+2

Как вы определяете, что контейнеры Qt более эффективны, чем контейнеры STL? –

2

Если вы работаете с графическим интерфейсом, перейдите к Qt. Это лучшее, что есть, и цена правильная. Он несколько отличается от жестких стандартов; но не без оснований, и даже в этом, он прилагает определенные усилия для использования подобных стилей кодирования, где это необходимо.

Если вы больше работаете в CLI или серверных процессах, Qt может помочь; но у него нет такого большого преимущества. Там было бы более продуктивно работать с STL и (особенно) Boost.

14

Read:

Те ссылки книги на C++ которые возобновляют все современные эффективные теории, философии и знания на C++ (не вдаваясь в мета-программные материалы).

Тогда, если вы хотите, чтобы идти дальше, читайте:

О библиотеках: первые узнают о СТЛ и научитесь использовать Boost в качестве «стандартного» расширения STL.

+0

+1 Для современного дизайна на С ++. Я разработчик loki-lib :) –

+0

+1 для эффективного C++. Это золотой стандарт и, честно говоря, если бы я был ответственным за команду, я бы удостоверился, что все это прочитали. – rlbond

+0

Лучший список книг на C++, которые я видел еще. Я желаю, чтобы каждый разработчик C++ читал каждую из этих обложек для покрытия. –

1

Код, а затем код еще!

Пробуйте проекты, в которых вы смешиваете методы, которые вы приобретаете из книг. Как упоминалось в других сообщениях, есть большой список хороших книг по программированию на С ++. Использование шаблонов и методов из этих книг в реальных ситуациях кодирования поможет вам быстро вернуться на правильный путь.

Кроме того, до тех пор, пока вы кодируете опыт, не бойтесь пытаться добыть разные библиотеки. Множество хорош, так как оно помогает вам понять, как построены разные библиотеки, а также помогает найти библиотеки, которые вы хотите использовать для реальных проектов.

2

Посмотрите на A.Koenig и B.Moo's Accelerated C++.

Другие цитированные книги - хорошие книги, но они потребуют от вас много времени, чтобы прочитать их все. AC++ преподает современный C++ (как в противопоставлении с историческим C++ - это не о шаблонах wizardry).

Последняя книга B.Stroustrup, Programming -- Principles and Practice Using C++, кажется (я еще не читал), также интересно.

Смежные вопросы