Quelle est la meilleure approche pour un développeur Java pour apprendre le C++ [fermé]


Je me considère comme un développeur Java expérimenté et je prévois de commencer à apprendre le C++.

Si vous avez eu la même expérience, c'est-à-dire apprendre C++ après Java, j'aimerais entendre vos réflexions sur la meilleure approche pour le faire.

[mise à Jour] "la meilleure approche" n'était pas bien quantifiés. Ce que je recherche, c'est de tirer parti de mes connaissances Java et de mon expérience de programmation existantes afin que je puisse rapidement monter en puissance sur C++.

Author: Journeyman Programmer, 2009-04-26

10 answers

J'ai enseigné le C++ aux gens de Java, même si je leur ai appris l'autre direction.

Êtes-vous à l'aise avec C? Sinon, lisez Kernighan et Ritchie. Beaucoup beaucoup de particularités de C++ s'expliquent par le désir que C++ soit un "Meilleur C" avec la syntaxe d'expression de base de C.

, Vous devriez obtenir Stroustrup.

Je pense bien à Penser en C++ par Bruce Eckels.

J'ai utilisé Le livre FAQ C++ , par Cline, Lomow, et Girou; Je m'y réfère assez souvent. Marshall Cline a C++ FAQ contenu sur son site, aussi.

Mise à jour

Vous pouvez aussi regarder C++ pour les Programmeurs Java. Je ne connais pas le livre mais il a l'air décent.

 18
Author: Charlie Martin, 2009-04-27 00:45:34

Ma proposition serait d'écrire hautement chose basée sur un pointeur, comme une bibliothèque de liste chaînée, une bibliothèque BST, etc. Le code doit être sans STL, similaire au C pur. Vous devez créer une application en utilisant une telle bibliothèque (par exemple. trier les algorithmes?) et apprenez à gérer tous les pièges qui se présenteront à coup sûr, si c'est votre premier code C/C++.

À mon avis, le fondamental le plus important pour connaître C++ est de comprendre les pointeurs et la représentation mémoire de bas niveau des classes et structure. C'est comme une illumination après laquelle tout est simple et clair;)

 9
Author: , 2009-04-25 23:55:17

Je commencerais par C++ efficace et C++ Plus efficace par Scott Meyers. Ces deux livres passent en revue de très bonnes pratiques pour C++.

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

 5
Author: Andy White, 2009-04-25 20:25:02

D'autres ont déjà spécifié les livres requis. Je voudrais ajouter quelques points à noter: (en arrière-plan est java)

  • C++ ne vous fournit pas les ordures collection (comme en Java). Par conséquent, vous doit être très perticulaire sur les fuites de mémoire. Toujours utiliser delete la mémoire allouée sur le tas en utilisant new. Essayez de vous souvenir du Free-Store gestion {[7] } dans la FAQ lors de la rédaction les applications C++.
  • Le plus souvent en C++, vous devrez peut-être travailler avec des pointeurs ( manquant dans Java). Apprendre des pointeurs (livres suggéré par @ Charlie Martin) efficacement et les utiliser.
  • Celui que vous connaissez C++, apprenez les bases de STL et d'utilisation efficacement. ( Livre de Josuttis et Scott Meyers)

Bonne chance.

 2
Author: aJ., 2009-04-26 08:43:35

Je suis fortement en désaccord avec l'apprentissage du C en premier, et avec l'essai de tgo learn C++ à partir des livres efficaces, bien qu'ils soient excellents. Au lieu de cela, obtenez une copie de Accelerated C++ par Andrew Koenig et Barabra Moo - ceci est écrit par deux du groupe de développement C++ original et vous apprendra à utiliser les fonctionnalités C++ modernes.

 2
Author: , 2009-04-26 08:52:03

Andy et Charlie vous ont déjà donné les livres, je vais donc indiquer les bibliothèquesboost et le frameworkQt .

Boost vous donne quelques fonctions de base pour travailler avec de sorte que vous n'avez pas besoin de tout créer à partir de zéro.

Qt, comme vous le savez peut-être, est un framework GUI, et je le trouve très agréable à utiliser. Il existe un livre intitulé "C++ GUI Programming With Qt 4" qui couvre tous les sujets importants à apprendre Qt.

 1
Author: besen, 2009-04-25 20:48:34

Cela va sembler un peu drôle, mais vous avez demandé le meilleur moyen, pas le plus rapide. Je vous suggère de commencer par apprendre C d'abord , avant d'apprendre C++. Kernighan et Ritchie est l'un des meilleurs livres jamais écrits. Lorsque vous connaissez C et Java, vous pourrez écrire de bons programmes clairs dans un sous-ensemble sensible de C++ sans presque aucun effort supplémentaire.

 1
Author: Norman Ramsey, 2009-04-25 23:48:16

"C++ pour les programmeurs Java" par Mark Allen Weiss est un bon livre d'introduction pour les programmeurs Java chevronnés.

 1
Author: Journeyman Programmer, 2009-08-02 02:00:31

Apprendre Qt. Croyez-moi à ce sujet; Je suis à la fois un développeur Java et C++; Je peux vous dire que Qt rend le langage C++ plus proche de Java. Ne vous contentez pas d'apprendre le C++sans os.

C++ avec Qt vous rend infiniment plus productif. J'avais l'habitude de combiner tellement de bibliothèques différentes (Boost, Intel, connecteurs de base de données, etc..) juste pour réaliser le genre de choses que nous faisons (calcul haute performance/temps réel). À la fin, j'ai constaté que plus de 80% de ce dont j'ai besoin est déjà inclus dans Qt.

Non pour mentionner, omi, Qt a la meilleure documentation sur n'importe quel framework/bibliothèque sur lequel j'ai travaillé, ce qui rend très facile de tout apprendre par vous-même.

Essayez-le, et voyez par vous-même.

Avertissement: Je suis juste un développeur I Je ne travaille pas pour Nokia. =p

 1
Author: sivabudh, 2009-11-12 00:29:44

K & R et Stroustrup sont des classiques, et finalement vous devriez les obtenir, mais je ne pense pas qu'ils soient une bonne introduction pour les débutants en C++. Penser en C++ moderne, c'est penser dans les classes, les modèles, les exceptions et les flux, dont aucun n'est disponible en langage C.

Je recommanderais un manuel de niveau collégial sur C++ comme Deitel et Deitel. texte alternatif http://ecx.images-amazon.com/images/I/61dECNkdnTL._SL500_AA240_.jpg

Après avoir joué, vous devriez vous concentrer sur l'apprentissage de l'écriture d'une classe qui se comporte comme une classe intégrée. Que veut dire un constructeur de copie, operator=, operator==, operator<<, etc.. En cours de route, vous rencontrerez divers concepts intégrés dans le langage C++. Je serais d'accord avec les autres sur C++efficace est un must à lire une fois que vous êtes à l'aise avec les bases.

 1
Author: Eugene Yokota, 2017-10-17 12:06:05