Изучите C++, чтобы понять примеры в книге быстро, знать C и Java, уже [закрытый]

Java

API Java не имеет никакого понятия неизменных объектов, которое плохо! Финал может помочь Вам в этом случае. Отметьте каждый класс, который неизменен с финалом, и подготовьте класс соответственно .

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

Использование защита, копирующая в Ваших методах считывания. Если Вы не возвращаете тип примитива, или неизменный объект удостоверяются, что Вы копируете объект не нарушить инкапсуляцию.

Никогда клон использования, используйте конструктор копии .

Узнают, что контракт между равняется и хэш-код. Это нарушается так часто. Проблема - это, не влияет на Ваш код в 99% случаев. Люди перезаписывают, равняется, но не заботьтесь о хэш-коде. Существуют экземпляры, в которых Ваш код может повредиться или ведет себя странный, например, используйте изменяемые объекты в качестве ключей в карте.

5
задан Javed Ahamed 7 September 2009 в 00:22
поделиться

8 ответов

Еще один бесплатный учебник - это Аннотации C ++ Фрэнка Б. Броккена. Вы можете просмотреть его в Интернете или загрузить pdf-версию .

Цитата с первой страницы:

Этот документ предназначен для знающие пользователи C (или любого другого язык, использующий C-подобную грамматику, например Perl или Java), кто хотел бы знать подробнее или перейдите на C ++. Этот документ является основным учебник по программированию Фрэнка на C ++ курсы, которые ежегодно организуются в Университет Гронингена

Что мне нравится в "Аннотациях C ++", так это то, что они обновляются, версия 8.0.0 имеет добавлены главы C ++ 0x.

4
ответ дан 18 December 2019 в 08:29
поделиться

См. Следующие предыдущие вопросы по онлайн-ресурсам для обучения C ++:

https://stackoverflow.com/questions/45175/resources-online-to-learn-c

https: //stackoverflow.com/questions/909323/what-are-good-online-resources-or-tutorials-to-learn-c

121---4595122-

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

4
ответ дан 18 December 2019 в 08:29
поделиться

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

Особенно в вашем случае, когда вы уже знакомы с Java и C, я не вижу, чтобы у вас возникли проблемы при использовании алгоритмов только потому, что они написаны на C ++

2
ответ дан 18 December 2019 в 08:29
поделиться

Это довольно учебник (и довольно дорогой, так что посмотрите, есть ли он в вашей библиотеке), но я бы порекомендовал саму книгу этого человека, язык программирования C ++ linky . Я использовал его для улучшения, а не для создания моего понимания C ++, но я использовал его в виде словаря, и, похоже, это сработало. Он написан для людей, которым комфортно программировать, и у вас есть указатели И объектно-ориентированный материал, так что он может хорошо сочетаться.

Например ... Глава 2, Обзор C ++ (поскольку я открыл ее в мои колени), говорит о большом количестве вещей, многие из которых сравнивают себя со способом выполнения вещей на букву «С». Это не новое для Java-программиста, но другой синтаксис и т. Д. В принципе, если вы хотите узнать об итераторах C ++, посмотрите главу об итераторах и т. Д.

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

Наконец, если вы хотите быть гуру (а я, конечно, не гуру), обсуждаются все, начиная с «Техники реализации, безопасной для исключений» (Приложение E.3) к философии разработки больших программных проектов.

Итак, я дал вам достаточно рекламы (я никогда не встречал этого парня, честно), но я нашел книгу весьма полезной.

(попробуйте выяснить, как назначить постоянное поле в экземпляре объекта, например, с помощью конструктора), и я обнаружил, что эта книга весьма показательна. К счастью, есть довольно изящный указатель, включающий операторы, который весьма полезен.

Наконец, если вы хотите быть гуру (а я, конечно, не гуру), обсуждаются все, начиная с «Техники реализации, безопасной для исключений» (Приложение E.3) к философии разработки больших программных проектов.

Итак, я дал вам достаточно рекламы (я никогда не встречал этого парня, честно), но я нашел книгу весьма полезной.

(попробуйте выяснить, как назначить постоянное поле в экземпляре объекта, например, с помощью конструктора), и я обнаружил, что эта книга весьма показательна. К счастью, есть довольно изящный указатель, включающий операторы, который весьма полезен.

Наконец, если вы хотите быть гуру (а я, конечно, не гуру), обсуждаются все, начиная с «Техники реализации, безопасной для исключений» (Приложение E.3) к философии разработки больших программных проектов.

Итак, я дал вам достаточно рекламы (я никогда не встречал этого парня, честно), но я нашел книгу весьма полезной.

2
ответ дан 18 December 2019 в 08:29
поделиться

Я бы рекомендовал ознакомиться с C ++ Primer Plus (5-е издание) . Что вам, вероятно, нужно знать, так это синтаксис для:

  • системы типов
  • шаблонов
  • перегрузки оператора

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

C ++ Primer Plus (5-е издание) http://ecx.images-amazon.com/images/I/41YAKQF6BML._SL160_.jpg

2
ответ дан 18 December 2019 в 08:29
поделиться

Я удивлен, что никто еще не упомянул Accelerated C ++ . Он не так сильно основан на ваших знаниях C (или Java), но научит вас языку, как он есть.

2
ответ дан 18 December 2019 в 08:29
поделиться

Я нашел «C ++» Тилля Джеске, 2002, ISBN 0-201-75879-2 очень хорошим. Это не убийца домашних животных, толщиной всего 1,25 дюйма, написано довольно хорошо - кратко и по существу. Раньше я немного знал C ++, но книга Джеске мне очень помогла.

1
ответ дан 18 December 2019 в 08:29
поделиться

Besides the already stated answers about using Vector, Vector also has a bunch of methods around enumeration and element retrieval which are different than the List interface, and developers (especially those who learned Java before 1.2) can tend to use them if they are in the code. Although Enumerations are faster, they don't check if the collection was modified during iteration, which can cause issues, and given that Vector might be chosen for its syncronization - with the attendant access from multiple threads, this makes it a particularly pernicious problem. Usage of these methods also couples a lot of code to Vector, such that it won't be easy to replace it with a different List implementation.

com / questions / 909323 / what-are-good-online-resources-or-tutorials-to-learn-c

2
ответ дан 18 December 2019 в 08:29
поделиться
Другие вопросы по тегам:

Похожие вопросы: