9
votes

Apprendre C ++ Droite?

Étant donné que j'ai utilisé principalement des langues de script au cours de la dernière fois, mais que je veux maintenant aller au niveau "haute performance", j'ai décidé d'apprendre C ++ il y a quelque temps.

J'ai regardé des didacticiels "débutants" et j'ai acheté un livre de référence de poche O'Reilly C ++ (c'est vraiment utile). Mon problème est que je connais maintenant toutes les bases, mais je ne suis pas bon que je suis bien susceptible de programmer un jeu plus compliqué, par exemple, encore.

  • Dois-je obtenir un de ces livres épais C ++ pour apprendre davantage?
  • Je vais utiliser C ++ sur Windows principalement. Quelles Apis à côté de Win32 sont importantes pour moi?
  • Mon objectif serait d'écrire un petit interprète pour un langage de programmation que j'ai bien fait - j'ai réussi à dire que dans plusieurs langages de script déjà, quelle connaissance de l'API / bibliothèque ai-je besoin?
c++

0 commentaires

8 Réponses :


1
votes

J'ai toujours trouvé que l'apprentissage d'une langue d'un livre est assez difficile et qu'après connaître les bases, vous devriez commencer à programmer. Donc, au lieu de ramasser un manuel épais, je voudrais vérifier quelque chose comme http: //www.cprogramming. com / tutorial.html # avancé ou juste Google pour le tutoriel C ++ et quelque chose que vous aimeriez essayer de faire.


3 commentaires

Vous devez éviter tous les didacticiels C ++ en ligne comme la peste - ils sont uniformément égarés ou faits à plat.


@Neil: un peu fort. Il y a de bons points dans plusieurs tutoriels, mais je conviens que le rapport signal au bruit est faible - ou même négatif, avec de nombreuses suggestions activement nocives.


Vous devez juste trouver des gens qui sont bons. La même chose que les livres, pas tous sont parfaits. La clé est de travailler sur certains exemples de vie réels. Après avoir lu assez de livres, vous ne gagnez vraiment rien sans le faire et expérimenter.



8
votes
  1. Vous n'avez pas besoin d'un livre épais - vous avez besoin d'un bon. Obtenez accéléré C ++ , écrit par Koenig & Moo, deux de l'équipe de développement C ++ originale. < / li>

  2. dépend de ce que vous voulez faire.

  3. Vous n'avez besoin de rien - vous pouvez écrire un interprète ou un compilateur parfaitement bon à l'aide de la bibliothèque standard C ++. Voir ce Donc, question pour beaucoup d'informations dans cette zone.


2 commentaires

Je recommanderais à efficacement C ++ et efficace STL tout de suite.


J'aime la citation qu'ils ont à propos de ce livre: "Toute personne lit juste ce livre et travaillant à travers les exemples et les exercices aura les mêmes compétences que de nombreux programmeurs professionnels". Malheureusement, ça ne dit pas grand chose du tout. :-)



0
votes

Pour C ++ sur Windows, apprenez définitivement les classes de la Fondation Microsoft (MFC). Sans MFC, vous devez impliquer vous-même tous les éléments de l'API Windows vous-même, ce qui est plus C ++ et peut être une douleur à la fois.

Vous voudrez peut-être aussi obtenir, apprendre et utiliser le Boost C ++ Bibliothèques. Ils ne sont pas spécifiques à Windows, mais ils constituent une excellente ressource pour quiconque.


3 commentaires

MFC est une technologie morte. Si vous souhaitez écrire Windows Guis, utilisez QT ou abandonnez C ++ et utilisez C #.


On doit noter (je sais que vous le savez, Neil), qui connaissant QT bien vous permet de développer des applications interface graphique avec quoi, je pense, pourrait être décrite comme un effort minimal possible (en supposant que nous ne parlions que de C ++ ici).


@Neil: Un remplacement plus direct est WTL (récemment cueilli par Chrome) et j'imagine plusieurs fonctionnalités étranges / intéressantes que Windows supportant serait plus difficile à utiliser dans QT en raison d'une inadéquation d'interface. Bien sûr, je roule le mien, alors qu'est-ce que je sais. :)



1
votes
  • Un bon (et) Livre mince pour commencer à C ++ est Accéléré C ++ par Koenig et Moo.
  • Je fais principalement programmer sous Linux, mais j'entends beaucoup de mauvaises choses sur le MFC, alors j'essaierais de trouver une bibliothèque d'interface graphique différente.
  • Une fois que vous avez accéléré avec certaines des parties les plus complexes de la syntaxe C ++, consultez le Boost.Spirit bibliothèques pour la génération d'analyseurs. Les différentes bibliothèques de boost fournissent des extensions très utiles à la bibliothèque standard.

0 commentaires

1
votes

Honnêtement, en apprentissage C ++, je n'ai jamais ramassé un livre (pas de flammes s'il vous plaît). Le meilleur conseil que je puisse donner est d'accéder à Cette page et passez par le didacticiel. Il couvre la majorité de la langue C ++ (lecture: caractéristiques les plus couramment utilisées) et la conserve aussi simple que possible. En ce qui concerne les API importantes ... c'est une question de préférence. La boîte à outils / API de personne n'a vraiment "gagné", mais qt, gtk-- (gtkmm) et WxWidgets sont tous de gros joueurs. Et outre Guis, vous voudrez probablement apprendre les API brutes WINSOCK2 et WINDING ou les interfaces de filetage et de réseau de Boost Bibliothèque. Je conviens que le MFC est en train de mourir et que le développement de Windows (Windows (Windows) prend un rôle de plus en plus volumineux (même sur Linux / Mono C # commence à attraper ... lentement).

En outre, le meilleur moyen d'apprendre une langue est de coder. Donc, ne vient pas de lire une tonne entière - sans expérience pratique, vous n'allez jamais apprendre la langue. Posez des questions, répondez à ceux que vous pouvez et écrivez des tutoriels - pour vous-même si personne d'autre. Écrit ce que vous avez appris est une excellente référence et le processus de redressement de tout ce qui est de la tête dans votre tête pour l'écrire d'une manière qu'une autre personne peut la comprendre seul est un excellent moyen de renforcer les concepts. Dans une étrange, mais apparemment en arrière, comment j'ai trouvé le meilleur moyen d'apprendre la programmation consiste à aider d'autres personnes avec leurs questions.

@ Neil- je suis en désaccord que les didacticiels en ligne sont "faits fausses". Si quelque chose, le style qu'elles enseignent, vous pourriez être orienté vers la lisibilité plutôt que sur l'optimisation, ce qui est un avantage à mon-même humble. Dans mon expérience limitée, j'ai trouvé Cplusplus.com une référence à peu près tout.

Spécifiquement, pour répondre à vos questions: 1. Pas de livre épais nécessaire. J'ai entendu dire que les plus minces peuvent être utiles comme une référence rapide, cependant.

  1. C'est complètement subjectif et dépend de votre objectif. Les bibliothèques du réseau et de multithreading de Boost sont probablement un bon départ.

  2. entre std :: string, std :: stringstream et getline (std :: istream &, std :: string &) vous devriez être assez bon. C ++ est livré avec une tonne entière de fonctionnalités intégrées mais n'est pas trop gonflée / énorme / impossible à apprendre. Prends le à ton avantage. Toutes les analyses sont déjà construites.


0 commentaires

2
votes

Apprendre avec des livres. C ++ est une langue complexe. Ma suggestion est d'abord aller avec une introduction assez rapide et une vue d'ensemble générale des principaux paradigmes de programmation que C ++ prend en charge: OOP et programmation générique: accéléré C ++ . . .

Lorsque vous avez terminé ce livre, vous pouvez accompagner les deux volumes de la réflexion de Bruce Eckel à C ++ très détaillée.

Pour la programmation de l'interface utilisateur, la meilleure boîte à outils C ++ est QT, et il est prêt multiplaform. Vous pouvez lire "C ++ PROGRAMMATION GUI avec QT4" (la première édition est libre de télécharger, juste Google IT). Si vous souhaitez coller avec C ++ / Windows API, apprenez la bibliothèque de modèles Windows, il peut être un peu difficile en raison du manque de documentation officielle (Allgh Il y a de bons tutoriels sur le net). WTL est la voie à suivre pour créer de très petites applications légères (DLL QT de l'autre côté, nécessité quelques MBS chacune).


0 commentaires

0
votes

Je recommande fortement Book Intro C ++ de Stroustrup. Il couvre C ++ et STL d'une manière très accessible.

Après cela, vous pourriez envisager de rechercher dans des livres sur Qt, une boîte à outils GUI multi-plate-forme, ou WTL ou MFC pour Windows. Vous pouvez faire .NET + C ++, mais ce serait beaucoup à apprendre. D'après mon expérience avec QT et MFC, les livres n'ont pas beaucoup aidé. Fantation d'applications d'échantillons, construisant de petites applications simplement pour tester un type de fonctionnalité et piquer autour de la documentation était la seule façon de gagner ma tête autour de la bibliothèque. Les livres que j'avais eu tendance à simplement briller trop - ils ne valaient pas l'argent.


0 commentaires

1
votes

S'il vous plaît, pour l'amour de Pete, n'utilisez pas directement l'API Win32. Vous vous peignez dans le coin Microsoft. Il y a beaucoup de bibliothèques multiples plateformes là-bas, vous pouvez utiliser à la place:

  • Bibliothèque C ++ standard: chaînes, E / S, conteneurs, algorithmes
  • Boost pour les trucs quotidiens qu'ils ont laissés hors de la bibliothèque standard: analyse , mise en réseau, filetage, pointeurs intelligents, pools de mémoire, date / heure, matrices, etc ... Boost Bibliothèques sont examinées par des pairs avant d'être acceptées et sont de haute qualité. Boost est le terrain de reproduction des bibliothèques qui finissent par faire partie de la norme C ++ suivante.
  • Boîtes à outils GUI: QT et WXWidgets sont très matures et largement utilisés. Il y en a beaucoup plus.

0 commentaires