Quindi, circa un anno fa ero nella stessa barca di te: autodidatta c # dev che sentiva il bisogno di imparare il C ++. Certo, mi sono fermato e ho iniziato più volte. Al mio terzo tentativo, finalmente ci sono riuscito.
Ciò che è imperativo capire è che, in termini di metodologie C ++ e C #, probabilmente trascorrerai molto tempo a capire quali metodi di manipolazione dei dati tramite puntatori e riferimenti veramente significano, così come quando e come usarli date le circostanze.
La cosa bella di C ++ è che l'allocazione degli stack degli oggetti è abbastanza semplice per la maggior parte, e dovresti assegnare gli oggetti in questo modo se il tuo programma soddisfa i requisiti specificati in questo metodo. Altrimenti, ti affidi ai puntatori per velocità, efficienza e pulizia rapida. Vi consiglio di leggere questo: link in quanto vi darà un sacco di comprensione tecnica di come C ++ funziona sotto la cappa .
Lasciatemi fare un esempio:
In C ++ esiste questa implementazione del costruttore nota come "lista di inizializzazione", che differisce dall'inizializzazione dei membri della classe nel corpo di un costruttore. Perché? Perché a meno che il tipo inizializzato non sia primitivo, il compilatore creerà effettivamente copie multiple e inutili dell'oggetto creato durante l'allocazione nel corpo del ctor. Questo può potenzialmente ridurre le prestazioni, a seconda del compilatore e dei requisiti in scala dell'app.
Sapere cos'è un delegato? Bene, in C ++ è conosciuto come un puntatore della funzione . All'inizio questo linguaggio è piuttosto difficile da padroneggiare, ma se vuoi essere fantastico ... è assolutamente necessario.
C # è facile ... molto facile.