Quindi, circa un anno fa ero nella tua stessa barca: autodidatta c # dev che sentiva il bisogno di imparare il C ++. Concesso, mi sono fermato e iniziato più volte. Al mio terzo tentativo, finalmente ci sono riuscito.
Ciò che è assolutamente necessario capire è che, in termini di metodologie C ++ e C #, probabilmente passerai molto tempo a capire cosa significano realmente i metodi di manipolazione dei dati attraverso puntatori e riferimenti , nonché quando e come usarli in base alle circostanze.
La cosa bella di C ++ è che l'allocazione di stack di oggetti è abbastanza semplice per la maggior parte, e dovresti allocare oggetti in questo modo se il tuo programma soddisferà i requisiti specificati con questo metodo. Altrimenti, fai affidamento sui puntatori per velocità, efficienza e pulizia rapida. Vi consiglio di leggere questo: http://www.parashift.com/c++-faq-lite/ in quanto vi fornirà MOLTE conoscenze tecniche su come funziona il C ++ sotto il cofano.
Lasciate che vi faccia un esempio:
In C ++ esiste questa implementazione del costruttore nota come "elenco di inizializzazione", che differisce dall'inizializzazione dei membri della classe nel corpo di un costruttore. Perché? Perché a meno che il tipo da inizializzare non sia primitivo, il compilatore creerà effettivamente copie multiple e non necessarie dell'oggetto creato quando allocato nel corpo del ctor. Ciò può potenzialmente ridurre le prestazioni, a seconda del compilatore e dei requisiti ridimensionati dell'app.
Sai cos'è un delegato? Bene, in C ++ è noto come puntatore a funzione . All'inizio questo linguaggio è piuttosto difficile da padroneggiare, ma se vuoi essere fantastico ... è sicuramente necessario.
C # è facile ... molto semplice.