12
votes

Visual C ++ vs Visual C #, lequel est le meilleur à apprendre?

J'ai fait mes cours et pratiques C ++ après lesquels j'ai commencé à apprendre Visual C ++ en utilisant le livre Ivor Horton's Visual C ++. Le problème est que je suis incapable de comprendre la langue de ce livre et d'essayer mal de comprendre les codes. Je souhaite apprendre Visual C ++ pour le développement de l'application Windows et faire mon avenir dans cela (aussi parce que je connais déjà C ++).

Certains de mes amis m'ont dit de passer à C # car il possède de nombreuses fonctions de bibliothèque pour créer une interface graphique, etc. et m'a dit qu'il est difficile de coder les applications Windows dans Visual C ++.

Maintenant, dans ces vacances, je vais rejoindre des cours, peux-tu m'aider quelle langue je devrais coller et laquelle sera facile?

Du tout début, je veux apprendre Visual C ++ et parfois je pense que c'est difficile quand je ne comprends pas le concept de livres de référence, etc.

Toute aide sera très appréciée, merci beaucoup d'avoir pris votre temps précieux.


0 commentaires

8 Réponses :


46
votes

Visual C ++ et Visual C # ne sont pas langues ni cadres d'interface graphique ; Ils sont environnements de développement intégrés - IDES. Cela signifie qu'ils sont des éditeurs de texte adaptés à la tâche de développement.

Visual C ++ vous permet de coder en C ++, Visual C # vous permet de coder en C #. En outre, les deux vous permettent de créer des GUIS de manière point et clic.

Cela ressemble à ce que vous voulez vraiment faire est de créer des gites. Dans ce cas, sans avoir plus d'informations, je vous recommande d'aller pour C #. C'est une langue beaucoup plus propre que c ++, il a moins de façons de vous tirer dans le pied et permet d'accéder à la framework immensément utile.

C # Caractéristiques que c ++ n'a pas:
  • Gestion de la mémoire entièrement automatique
  • Fonctions Lambda ¹
  • Type Inference ¹
  • réflexion
  • Remoting
  • sérialisation automatique
  • Types de vrais entités
  • Propriétés
  • Intégration de la base de données via LINQ
  • Programmation pratique de style fonctionnel via LINQ
  • Aucun fichier d'en-tête
  • Aucun comportement indéfini
  • Interopérabilité directe avec Beaucoup de langues
  • Compilez une fois, courez partout

    ¹ Ces fonctionnalités ont été ajoutées à C ++ dans la norme C ++ 11.

    Caractéristiques C ++ que c # n'a pas
    • Modèle MetaProgramming
    • TypeDefs
    • Principe de surcharge zéro
    • signifie appliquer la constance CORRECTION
    • compilateurs matures qui produisent du code extrêmement optimisé de nos jours
    • Beaucoup plus large de la plateforme


6 commentaires

Pour le dernier paragraphe, vous manquez la caractéristique la plus importante de C ++ (WRT. C #): Gestion de la mémoire déterministe .


J'aimerais voir cette réponse mise à jour. C ++ 11 a des fonctions Lambda et une inférence de type.


J'utilise C # depuis, quelle est la série de sérialisation automatique en C #? C # Les programmeurs utilisent des bibliothèques (.NET ou non) pour gérer la sérialisation. Vous ne pouvez pas la même chose avec C ++ aussi? : o


@nawfal: En C # Les bibliothèques de sérialisation utilisent généralement la réflexion pour déterminer les données contenues dans un graphique d'objet donné. C'est ce que je veux dire par automatique. Vous n'avez pas besoin de dire explicitement au sérialisateur quels sont les membres de données contenus dans vos objets, mais avec C ++, vous le faites (même avec des bibliothèques), car il n'a pas de réflexion.


@Stefanmonov je vois ça mais j'avais deux problèmes avec ça. 1) 'Automatique' implique une fonctionnalité de langue, du moins pour moi. C # n'a pas de construction pour faire la sérialisation, mais c'est la bibliothèque qui l'entoure. Peut-être qu'un meilleur choix de mots aiderait ici, comme "C # aide la sérialisation", ou "il est plus facile de sérialiser en C #". 2) Dans tous les cas, il est couvert dans la partie réflexion. C'est la réflexion qui l'aide dans le cas de C #. Donc peut-être qu'il vaut mieux être un sous-point. Puis-je modifier?


Visual C ++ était un IDE, pas plus. En outre, une comparaison doit être faite côte à côte, contrairement à celle-ci est faite maintenant.



7
votes

Pouvez-vous m'aider quelle langue je devrais coller et laquelle sera facile?

En général, si votre objectif est de développer des applications Windows, vous trouverez probablement de nombreux exemples plus simples à apprendre de C # qu'en C ++. Il y a une énorme communauté autour de C # pour le développement de l'interface graphique Windows.

Cela étant dit, bon nombre des concepts dont vous aurez besoin sont les mêmes dans une langue que vous appreniez. Vous ne pouvez pas vraiment vous tromper - à un moment donné, vous voudrez probablement apprendre les deux langueuges si vous allez programmer professionnellement (ainsi que d'autres).

Je pense que c'est difficile quand je ne comprends pas le concept dans les livres de référence, etc.

Vous devriez obtenir un livre de programmation de début, pas les livres de référence et le faire progresser étape par étape. Si votre objectif est juste du développement de l'interface graphique, je vous recommanderais d'un livre C # simple, et de passer à travers son formulaire commençant à se terminer et de faire tous les exemples. L'apprentissage d'un livre "référence" ne fonctionnera pas - c'est un matériau de référence et non destiné à enseigner des concepts.


0 commentaires

0
votes

J'apprendrais les deux.

Cela dit, je créerais des projets d'interface graphique / d'application à l'aide de C # et utilisez VC ++ pour toute communication COM ou appareil.

Je voudrais vérifier quelle plate-forme dois-je utiliser: natif C ++ ou C #?


0 commentaires

4
votes

C ++ contre c # - une liste de contrôle d'un point de vue des programmeurs C ++ http : //wwww.thinkingParallel.com/2007/03/06/c-vs-ca-checklist-de-ac-programmers-point-of-view/


1 commentaires

Le lien est mort ...



1
votes

Considérez peut-être ce que vous êtes susceptible de vouloir faire à l'avenir, en tant que professionnel ou amateur. La programmation est un champ large, dans lequel les deux langues ont leur place. Si c'est trop tôt pour que vous puissiez prendre cette décision, c # est probablement le plus susceptible de vous faire du bien à l'avenir.

On vaut la peine de rappeler qu'ils ne sont que des langues seulement - et tout comme écrire un bon livre parle plus que la correction de l'orthographe et de la grammaire, l'écriture de bon code concerne plus que les détails d'une syntaxe de langues particulière.


0 commentaires

4
votes

C # est la langue de PRECREIR .NET pour développer des applications sur le .NET Framework.

natif c ++ est plus plate-forme croisée et de faible niveau. Il est utilisé pour écrire des applications pour Windows, Mac, Linux, systèmes intégrés, etc.

c ++. NET est C ++ adapté à la plate-forme .NET et est principalement utilisé pour la rédaction de pièces critiques d'une application (dont le reste est écrit en C #, vb.net ou quelque chose sinon, car ils intègrent pratiquement de manière transparente).

Visual C ++ est le compilateur Windows de Microsoft pour C ++ pouvant être utilisé pour écrire natif et C ++. Applications nettes.

Écrire des applications .NET uniquement en C ++ à beaucoup plus difficile que de les écrire en C #, car vous devez traiter des problèmes de niveau plus bas. Si vous souhaitez écrire des applications .NET, je recommande d'utiliser C # et C ++. NET si vous en avez besoin.


1 commentaires

Il n'y a pas de "C ++. NET", vous voulez dire C ++ / CLR . En outre, écrire en C ++ / CLR est difficile, mais pas parce que c'est un niveau inférieur (ce n'est pas). C'est difficile car la langue utilise la syntaxe ancienne de C ++ avec tous les gothas, tandis que C # est conçu à partir du sol pour s'adapter à la framework .NET et à apprendre des erreurs de C ++.




4
votes

avec C ++, vous pourriez être capable de toucher le «niveau bas» à proximité de «objets d'assemblage» de la programmation

c # n'est jamais destiné à être créé pour battre C ++, avec C #, vous obtenez l'ensemble des utilitaires .NET Framework, des générations de formulaire de nettoyage plus rapide, avec le manque de partie "basse niveau"


0 commentaires