Подтвердить что ты не робот

Каков наилучший подход для разработчика Java для изучения С++

Я считаю себя опытным разработчиком Java и планирую начать изучение С++.

Если у вас был такой же опыт, я изучил С++ после Java, я хотел бы услышать ваши мысли о том, как лучше всего это сделать.

[Обновить] "наилучший подход" был недостаточно определен. Я ищу, чтобы использовать существующие знания Java и опыт программирования, чтобы я мог быстро наращивать работу на С++.

4b9b3361

Ответ 1

Я преподавал С++ людям Java, хотя я узнал их в другом направлении.

Вам комфортно с C? Если нет, прочитайте Керниган и Ричи. Многие особенности С++ объясняются стремлением С++ быть "лучше C" с синтаксисом C основного выражения.

Вы должны получить Stroustrup.

Я хорошо думаю о Мышление в С++ от Брюса Экелса.

Я использовал С++ FAQ Book, Cline, Lomow и Girou; Я обращаюсь к нему довольно часто. Marshall Cline имеет С++ часто задаваемый контент на своем сайте.

Update

Вы также можете посмотреть С++ для Java-программистов. Я не знаю эту книгу, но она выглядит прилично.

Ответ 2

Мое предложение было бы написать высоко на основе указателя, например, библиотеку связанных списков, библиотеку BST и т.д. Код должен быть STL-бесплатным, похожим на чистый C. Вы должны создать приложение используя такую ​​библиотеку (например, алгоритмы сортировки?) и узнайте, как справляться со всеми ловушками, которые наверняка придут, если это ваш первый код на C/С++.

По моему мнению, самым важным основополагающим в знании С++ является понимание указателей и представление памяти классов и структур на уровне низкого уровня. Это как просветление, после которого все просто и ясно;)

Ответ 3

Я бы начал с Effective С++ и более эффективного С++ Скотта Мейерса. Эти две книги посвящены некоторым действительно хорошим передовым практикам для С++.

http://www.aristeia.com/books.html

Ответ 4

Другие уже указали необходимые книги. Я хотел бы добавить только пару пунктов, которые нужно отметить: (поскольку фон - java)

  • С++ не предоставляет вам мусор (как на Java). Следовательно, вы должно быть очень сложным в отношении утечек памяти. Всегда используйте delete память, выделенную в куче, используя new. Попытайтесь запомнить Free-Store управления в FAQ при написании приложения на С++.
  • Чаще всего на С++ вам, возможно, придется работать с указателями (отсутствует в Ява). Узнать указатели (книги предложенный @Чарли Мартином) эффективно и использовать их.
  • Вы знакомы с С++, учитесь основы STL и использование эффективно. (Книга Josuttis и Скотт Мейерс)

Удачи.

Ответ 5

Я категорически не согласен с обучением C в первую очередь, и, пытаясь обучать С++ из Эффективных книг, отлично, хотя они и есть. Вместо этого возьмите копию Accelerated С++ от Andrew Koenig и Barabra Moo - это написано двумя из исходной группы разработки на С++ и будет научит вас использовать современные возможности С++.

Ответ 6

Энди и Чарли уже дали вам книги, поэтому я укажу boost библиотеки и Qt.

Boost дает вам некоторые базовые функции для работы, поэтому вам не нужно создавать все с нуля.

Qt, как вы знаете, является графическим интерфейсом, и мне очень приятно его использовать. Существует книга под названием "С++ GUI Programming with Qt 4", которая охватывает все важные темы, чтобы узнать Qt.

Ответ 7

Это будет звучать немного забавно, но вы попросили лучший способ, а не самый быстрый. Я предлагаю вам начать с обучения C сначала, прежде чем вы изучите С++. Керниган и Ричи - одна из лучших языковых книг, когда-либо написанных. Когда вы знаете C и Java, вы сможете писать хорошие, понятные программы в разумном подмножестве С++ без каких-либо дополнительных усилий.

Ответ 8

K & R и Stroustrup - это классика, и в конечном итоге вы должны получить их, но я не думаю, что они являются хорошим знакомством для начинающих С++. Мышление в современном С++ - это мышление в классах, шаблонах, исключениях и потоках, ни один из которых не доступен на языке C.

Я бы порекомендовал учебник на уровне колледжа на С++, например Deitel и Deitel. alt text http://ecx.images-amazon.com/images/I/61dECNkdnTL._SL500_AA240_.jpg

После игры вы должны сосредоточиться на обучении писать класс, который ведет себя как встроенный класс. Это означает предоставление конструктора копирования operator=, operator==, operator<< и т.д. По пути вы встретите различные концепции, встроенные в язык С++. Я бы согласился с другими на Эффективный С++ должен быть прочитан, как только вам будет удобно основываться.

Ответ 9

"С++ для Java-программистов" Марка Аллена Вайсса - хорошая вступительная книга для опытных программистов на Java.

Ответ 10

Изучите Qt. Поверьте мне в этом; Я разработчик Java и С++; Я могу сказать, что Qt делает язык С++ ближе к Java. Не просто изучите bare-bone С++.

С++ с Qt делает вас бесконечно более продуктивным. Я использовал для объединения так много разных библиотек (Boost, Intel, разъемы базы данных и т.д.), Чтобы добиться того, что мы делаем (высокопроизводительные/в режиме реального времени). В конце я обнаружил, что более 80% того, что мне нужно, уже включено в Qt.

Не говоря уже о том, что imo, Qt имеет лучшую документацию по любой инфраструктуре/библиотеке, над которой я работал, что позволяет легко просто изучить все самостоятельно.

Попробуйте и убедитесь сами.

Отказ от ответственности: я просто разработчик - я не работаю для Nokia. = Р