J'ai besoin de se mettre à la hauteur de C ++ assez rapidement (je ne l'ai jamais utilisé précédemment) - apprendre via Visual Studio (c'est-à-dire géré C ++) pour être n'importe quelle utilisation? Ou vais-je finir par apprendre les extensions et les idiosyncracies de C ++ dans VS, plutôt que la langue elle-même? P>
Si l'apprentissage en VS n'est pas recommandé, quelle plate-forme / IDE vous suggérez-vous? P>
Merci pour toutes les suggestions .. p>
11 Réponses :
Visual Studio n'est pas nécessairement géré C ++. Vous pouvez le compiler avec cette option, mais ce n'est pas nécessaire. P>
À mon avis L'apprentissage à l'aide de Visual Studio est une excellente option que vous pouvez directement dans le code et ne vous dérange pas beaucoup de la configuration de votre projet. P>
Tout dépend, la première étape consisterait à lire de nombreux livres, certains de base, et quelques avancées comme efficaces C ++. p>
Géré C ++ est une bête très différente à Pure C ++, en plus de VS vous permet de programmer de manière à pure C ++. Donc, si votre objectif est d'apprendre pure C ++, je ne pense pas que vous devez apprendre les extensions gérées. p>
Pouvez-vous élaborer pourquoi vous avez besoin d'apprendre C ++? Quel type de projet vous allez travailler? p>
Visual Studio, avec son intellisense et son aide est une très bonne plate-forme pour apprendre une langue sur. p>
L'IDE Visual Studio peut être utilisé avec plusieurs langues: par exemple C #, géré C ++, ainsi que le véritable (non géré) C ++, donc: P>
Merci Chris - Ai-je raison de penser "Visual C ++" est la droite non gérée C ++?
"Visual C ++" est couramment utilisé pour identifier les produits qui utilisent l'IDE Visual Studio en combinaison avec Standard C ++ ou Microsofts C ++ / CLI Language
@FLSH Si je lisais 'Visual C ++' (par exemple dans une publicité d'emploi), je suppose que cela signifiait la norme C ++, à l'aide de l'IDE VS et des API Microsoft / Windows.
Eclipse est une excellente IDE qui fonctionne avec de nombreuses langues, y compris C ++. Le CDT Eclipse peut être trouvé ici: http://www.eclipse.org/cdt/ < / p>
Ma propre expérience: ma toute première tentative de programmation était C ++ dans vs. L'apprentissage de la syntaxe était relativement simple, mais qui s'attaque à la compilation / liaison / etc. était plus douloureux jusqu'à ce que je quitte l'IDE. Ces détails sont largement gérés pour / cachés de votre part. P>
Cela dit, si vous êtes un programmeur expérimenté, et surtout si votre objectif est de travailler avec C ++ dans VS (dans un environnement de travail ou d'école, par exemple), il s'agit d'une option de démarrage rapide viable. < / p>
Pouvez-vous élaborer quels détails sont cachés? J'ai vraiment besoin de prendre des poignées avec des pointeurs, une gestion de la mémoire et des tripes de C ++ - aucune de ces choses ne vous est cachée?
(Ha - je ne suis pas sûr que je sois le meilleur pour vous apprendre. Beaucoup est toujours caché de moi.) Vs ne cache pas les tripes de C ++ de vous; Vous obtenez autant de corde dans une IDE que vous faites sur la ligne de commande. C'est une bonne chose; Ce ne serait pas c ++ sinon. Ce que je faisais appelé était le fait qu'il y ait beaucoup qui se produit entre le code et l'exécutable. Quand j'ai été utilisé pour la première fois à VS, je n'avais aucun concept de "makefile" (ou équivalents), et je pensais que "compiler" signifiait "pousser F5". Finalement, vous voudrez savoir ce qui est derrière ce rideau, même si vous continuez à travailler dans l'IDE.
J'aime savoir ce qui se passe dans les coulisses, mais j'aime aussi briser les choses que je vais apprendre à des morceaux gérables. Cela signifie que si j'apprends C ++, j'aimerais que l'environnement soit aussi facile à utiliser possible. Une fois que j'ai appris C ++ à un niveau raisonnable, j'étudierais l'autre affaire.
Bien dit. Apprendre la langue elle-même n'est pas une petite tâche; L'ajout d'un environnement avec de nombreuses pièces mobiles peut être une distraction majeure.
Pour C ++, je me suis habitué à Borland compilers http://www.turboexplorer.com/ . Les différences entre les compilateurs sont dans les bibliothèques qu'ils utilisent (DLL et inclut, mais certaines d'entre elles sont standard). J'ai commencé avec DevC ++ (un compilateur gratuit http://www.bloodshed.net/devcpp.htmlled/a >) Et je l'ai aimé aussi.
La langue est la même. Mais le meilleur est d'essayer différents compilateurs et d'utiliser celui que vous aimez le plus. P>
et le meilleur pour l'apprentissage C ++ commence à commencer avec les applications de console. P>
Désolé, mais les compilateurs de Borland n'ont pas beaucoup de soutien pour la norme, ils sont buggy, certaines choses ne travaillent tout simplement pas avec eux. C'est le cauchemar que je suis confronté à mon travail, se débarrasser de l'ancien code de merde créé à cause d'une manière «non standard» que Borland a créé son compilateur. Si cela ne suffisait pas, leur compilateur, leur lieur et leur IDE sont vraiment buggy. Je dois le rouvrir plusieurs fois par jour.
pour citer MSDN sur géré C ++: P>
Extensions gérées pour C ++ a été créée étendre la langue C ++, permettant vous utiliser le .NET Framework et cibler le runtime de langue commune sans avoir à apprendre un nouveau Langage de programmation. P> blockQuote>
Ainsi, "géré c ++" n'est rien qui vous aidera à apprendre C ++. En outre, l'OMI est la meilleure façon d'apprendre une langue consiste à apprendre ses bases, pas certaines extensions. Ceci n'est pas lié au compilateur / IDE utilisé. Alors que VS peut fournir de bonnes fonctionnalités utiles à l'aide d'un simple éditeur de texte avec n'importe quel compilateur de ligne de commande comme g ++ est parfaitement bien aussi . P>
Si vous voulez apprendre tout simplement C ++ et un minimum nu de rien d'autre. Je suggérerais d'installer Cygwin et GCC / G ++. La raison pour laquelle je me recommande Cygwin est de la question qui vous semble en utilisant Windows. Sinon, si vous utilisez un système de type * NIX, vous devez déjà avoir GCC. P>
Tout ce que vous devrez faire est de créer vos fichiers C ++ dans votre éditeur préféré et compiler. Vous devrez toujours apprendre à utiliser GCC et éventuellement faire des fichiers (surtout si vous faites un projet non trivial) mais c'est probablement la configuration minimale minimale que vous auriez pu avoir pour apprendre C ++. P>
Vous avez une étrange définition de «minimum». Je dirais que l'installation de VC ++ Express (gratuit, une seule application) est beaucoup plus simple que Cygwin + Compiler + Faire + tout ce dont vous avez besoin lorsque vous passez cette route.
Avez-vous utilisé Cygwin? Ce n'est pas ce complexe pour un. Le second de tout son problème est d'apprendre ne pas installer (lire l'OP). Tout ce qu'il doit apprendre avec Cygwin, c'est comment utiliser le compilateur. Lorsque vous utilisez un IDE, vous devez en apprendre plus que sur la manière de compiler. Je ne préconise pas les ides que j'utilise Eclipse moi-même. J'essaie juste de répondre à sa question
Sur un système de type UNIX (comme Linux ou Mac OSX), utilisez g ++. Sur Windows, je ne vois aucune raison de ne pas utiliser vs. En Cygwin, vous devez en savoir plus que sur la manière de compiler, tout comme vous devez apprendre certaines choses sur vs.
Peut-être que je suppose que tout le monde connaît l'environnement * Nix ainsi que moi. Qui viennent penser à c'est une mauvaise hypothèse. Mais tout si vous savez déjà comment utiliser un SH / KSH / BASH, etc., tout ce que vous devez apprendre est le processus de compilation. Ce qui est l'une des choses que l'OP a dit qu'il ne voulait pas que l'IDE se cache de lui. Cependant, s'il n'a pas d'expérience avec l'utilisation d'une coquille * Nix de toute saveur, vous êtes 100% correct
Visual Studio (ou la version gratuite, Visual C ++ Express) est un choix parfaitement fin sur les fenêtres. Sur Linux, vous finirez probablement d'utiliser GCC. Les deux sont des compilateurs fins. P>
Visual C ++ prend en charge "Real" Native C ++ et C ++ / CLI, la version gérée .NET, donc si vous souhaitez apprendre C ++, créez simplement un projet C ++ régulier. P>
Si vous êtes préoccupé par l'apprentissage de la norme "appropriée" C ++, notez que le compilateur par défaut active un certain nombre d'extensions Microsoft, que vous voudrez peut-être désactiver. (Propriétés du projet -> C / C ++ -> Langue -> Désactiver les extensions de langue). P>
Pour l'enregistrement, GCC a des extensions similaires (pouvant être désactivée en appelant le compilateur avec --ansi), ce n'est donc pas que Microsoft est grand et malade et non standard. ;) p>
belle réponse, très claire, merci
OK, mais Visual Studio propose de nombreux modèles qui ajoutent beaucoup de déchets au projet. Pour apprendre uniquement STL C ++ avec Visual Studio, avons-nous besoin d'installer un modèle spécifique ou d'utiliser l'un des éléments existants?
Il propose également des modèles qui ajoutent rien i> au projet. Il suffit de créer un projet Win32 C ++, et dans la boîte de dialogue Détails, cochez la case vide vide code>.
Visual Studio a un très bon débogueur fort>. Il a la prise en charge des types STL (version 2008 est meilleur) qui vous aidera tout en débogage.
Visual Studio insiste sur les spécificités Microsoft à partir du tout premier projet de console que vous produisez (New-> Project-> Win32 Console Application) p> Qu'est-ce que STDAFX.H? Qu'est-ce que _tmain? Qu'est-ce que TTCHAR? (BTW non besoin de leur répondre ici) Ce sont des questions qui ne doivent pas apparaître dans la tête d'un novice. P> C'est pourquoi je suggère d'utiliser la case "Projet vide" dans le projet d'application de la console Win32, puis "Ajouter un nouvel élément" du menu du projet et choisissez un fichier de CPP qui donnera
Vous une page vierge où vous pouvez implémenter le code que vous avez lu à partir d'un bon livre C ++. p> p>
J'ai besoin de se mettre à la hauteur de C ++ assez rapidement (je ne l'ai jamais utilisé précédemment) - apprendre via Visual Studio (c'est-à-dire géré C ++) pour être n'importe quelle utilisation? Ou vais-je finir par apprendre les extensions et les idiosyncracies de C ++ dans VS, plutôt que la langue elle-même? Em> p>
Vous ne devez pas confondre entre géré C ++ et vs. Vous pouvez coder non géré (vrai) C ++ même dans Visual Studio. Visual Studio n'est qu'un IDE. p>
Si l'apprentissage dans VS n'est pas recommandé, quelle plate-forme / IDE suggérez-vous? em>
EDIT: Quelqu'un peut-il élaborer sur ce que vs va cacher ou gérer pour moi lors du codage non géré par C ++? J'ai vraiment besoin d'apprendre des choses comme des pointeurs, la collecte des ordures et tous les écrous et boulons de la langue basse niveau. VS est-ce que vs résumé ou cache-t-il n'importe lequel de ce genre de choses de votre part? Em> p>
vs comme n'importe quel autre IDE cachera des trucs tels que la compilation et la liaison des étapes de votre part. Mais il ne cachera aucune fonctionnalité de langue de votre part. Oui, vous pouvez apprendre les pointeurs et autres supports de bas niveau avec vs. Non géré C ++ ne prend pas en charge la collecte des ordures.
Mais si vous êtes débutant et que vous n'êtes pas pressé, le meilleur moyen est de prendre un éditeur de texte, un compilateur et un débogueur et un code. G ++, GDB et EMACS / VI seront une meilleure substitution pour VS pour les débutants. Vous aurez réellement ressentir comment les choses sont compilées, liées et finalement un binaire est faite. Mais cela prendra du temps et peut exiger que des conseils soient avec les outils. Avec vs, vous pouvez être debout en quelques minutes. Si votre objectif est d'apprendre la syntaxe et les fonctionnalités de la langue C ++, alors allez-y faire un nouveau projet VC ++ vide en VS et code. p>