Vor ungefähr einem Jahr saß ich also im selben Boot wie Sie: Autodidakt C # Dev, der das Bedürfnis verspürte, C ++ zu lernen. Zugegeben, ich habe mehrmals angehalten und angefangen. Bei meinem dritten Versuch habe ich es endlich geschafft.
Was unbedingt zu verstehen ist, ist, dass Sie in Bezug auf C ++ - und C # -Methoden wahrscheinlich viel Zeit damit verbringen werden, zu verstehen, welche Datenbearbeitungsmethoden durch Zeiger und Verweise tatsächlich verwendet werden bedeuten und wann und wie sie unter den gegebenen Umständen verwendet werden.
Das Schöne an C ++ ist, dass die Objektstapelzuweisung zum größten Teil recht einfach ist. Sie sollten Objekte auf diese Weise zuweisen, wenn Ihr Programm die unter dieser Methode angegebenen Anforderungen erfüllt. Andernfalls verlassen Sie sich auf Hinweise für Geschwindigkeit, Effizienz und schnelle Bereinigung. Ich empfehle dies zu lesen: http://www.parashift.com/c++-faq-lite/ da es Ihnen eine Menge technisches Verständnis darüber gibt, wie C ++ unter der Haube funktioniert.
Lassen Sie mich Ihnen ein Beispiel geben:
In C ++ gibt es diese Konstruktorimplementierung, die als "Initialisierungsliste" bezeichnet wird und sich von der Initialisierung von Klassenmitgliedern im Rumpf eines Konstruktors unterscheidet. Warum? Denn wenn der zu initialisierende Typ nicht primitiv ist, erstellt der Compiler tatsächlich mehrere und unnötige Kopien des Objekts, das beim Zuweisen im Hauptteil des Ctors erstellt wird. Dies kann je nach Compiler und den skalierten Anforderungen der App zu Leistungseinbußen führen.
Wissen Sie, was ein Delegierter ist? Nun, in C ++ ist es als Funktionszeiger bekannt . Diese Sprache ist anfangs ziemlich schwer zu beherrschen, aber wenn du großartig sein willst ... ist es definitiv erforderlich.
C # ist einfach ... sehr einfach.