Должен ли я изучать C++ на основе нового или старого стандарта (спецификации)?

StackOverflow https://stackoverflow.com/questions/865209

  •  21-08-2019
  •  | 
  •  

Вопрос

Хорошо, я подумываю о том, чтобы заняться разработкой на C++ в ближайшие месяцы (точной даты нет).Я смутно знаком с языком (в первую очередь C), а также некоторыми основами ОО, МИ, шаблонами, исключениями, шаблонами, использовал STL.И сейчас я нахожусь на том этапе времени, когда хотелось бы углубленно освоить язык.И естественный вопрос: стоит ли мне
начни с текущего С++03 или С++0x стандарт.

Пожалуйста, предложите, как лучше всего пройти путь от пользователя до гуру, учитывая, что новый стандарт уже почти готов и, вероятно, останется на долгие годы.

Спасибо

Это было полезно?

Решение

Моя рекомендация — начать с середины.Начните с C++03, но проверьте функции и библиотеки C++0x, которые уже так часто предлагают некоторые компиляторы.На данный момент C++03 является стандартом (не только формально, но и большая часть кода, который вы найдете, будет строго C++03).

Теперь, если вы собираетесь учиться, постарайтесь сделать все возможное:быстро начните с основ STL и сразу же приступайте к библиотекам Boost.Изучите шаблоны полностью, почитайте о метапрограммировании.Современное использование C++03 поможет вам перейти на C++0x.

Другие советы

Изучите старый стандарт C++03.До того, как C++0X будет ратифицирован в качестве стандарта, осталось еще несколько лет (по крайней мере).Как только это будет стандартизировано, пройдет время, прежде чем любой появятся соответствующие реализации, поддерживающие все его функции, и это займет еще некоторое время. дольше время до того, как реализации C++0X станут значительно популярными и часто используемыми.

На мой взгляд, изучение C++03 более практично.Если вы не против изучения новых функций, но можете использовать частичный код в течение нескольких лет, лучше использовать C++0x.Хорошая новость: новая версия g++ и vc++2010 уже реализовали часть новых функций c++0x.

Изучение новых функций C++0x — отличный способ глубже узнать о C++03, поскольку вы увидите, как работает C++03, проблемы с ним и что C++0x предлагает сделать для решения этих проблем. .

Недавно у меня был такой опыт, когда я узнал о новых ссылках на rvalue и семантике перемещения.В C++03 в выражениях много ненужного временного создания и копирования. Изучение того, почему в C++03 возникает эта проблема и как C++0x решает эту проблему, было весьма познавательным и послужило основой для моей текущей разработки на C++.

Пройдет несколько лет, прежде чем компиляторы C++0x станут обычным явлением.Так что на данный момент у вас нет особого выбора.Изучите C++03, а затем, когда придет время, вы сможете изучать новые вещи отдельно.Фундаментальные различия не так уж велики.0x — это в основном вопрос добавления новых функций, а также обобщения и оптимизации существующих функций.Знание C++03 по-прежнему будет применимо.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top