Il y a environ un an, j'étais dans le même bateau que vous: c # dev autodidacte qui ressentait le besoin d'apprendre le C ++. Certes, je me suis arrêté et j'ai recommencé plusieurs fois. À ma troisième tentative, j'ai finalement réussi.
Ce qui est impératif à comprendre, c'est qu'en termes de méthodologies C ++ et C #, vous passerez probablement beaucoup de temps à comprendre ce que les méthodes de manipulation de données par le biais de pointeurs et de références signifient réellement , ainsi que quand et comment les utiliser dans les circonstances.
La bonne chose à propos de C ++ est que l'allocation de pile d'objets est assez simple pour la plupart, et vous devez allouer les objets de cette façon si votre programme répond aux exigences spécifiées dans cette méthode. Sinon, vous comptez sur des pointeurs pour la vitesse, l'efficacité et le nettoyage rapide. Je recommande de lire ceci: http://www.parashift.com/c++-faq-lite/ car cela vous donnera beaucoup de connaissances techniques sur le fonctionnement de C ++ sous le capot.
Laisse moi te donner un exemple:
En C ++, il existe cette implémentation de constructeur connue sous le nom de "liste d'initialisation", qui diffère de l'initialisation des membres de classe dans le corps d'un constructeur. Pourquoi? Parce qu'à moins que le type en cours d'initialisation ne soit primitif, le compilateur créera en fait plusieurs copies inutiles de l'objet en cours de création lorsqu'il est alloué dans le corps du ctor. Cela peut potentiellement réduire les performances, selon le compilateur ainsi que les exigences évolutives de l'application.
Vous savez ce qu'est un délégué? Eh bien, en C ++, il est connu comme un pointeur de fonction . Cette langue est assez difficile à maîtriser au début, mais si vous voulez être génial ... c'est définitivement requis.
C # est facile ... très facile.