Domanda

Nella mia università la maggior parte delle mie lezioni erano a Java.Recentemente ho anche imparato C# (e l'ambiente Visual Studio) durante uno stage estivo.Ora sto frequentando un corso di introduzione alla computer grafica e lo studente laureato che insegna il corso preferisce che utilizziamo C++ per accedere ai collegamenti OpenGL tramite GLUT.

Qualcuno ha delle buone risorse su come effettuare una buona transizione da Java/C# a C++?Ovviamente i puntatori saranno un grosso problema, ma ci sono altre cose a cui dovrei prestare attenzione?Eventuali tutorial, guide, ecc.sarebbe molto utile!

Grazie!

È stato utile?

Soluzione

Sì, sono stato morso dallo stesso bug.L'università tendeva ad appoggiarsi a Java e quindi ti permetteva di scegliere la lingua con cui volevi lavorare durante i progetti.

Il modo migliore è semplicemente buttarsi dentro.Inizia in piccolo, fai piccoli passi e cerca su Google solo cose che ti confondono quando arrivi a quel punto.Trova anche progetti che hanno rilasciato il loro codice sorgente.Guarda come strutturano i loro programmi.Fondamentalmente, basta armeggiare con i concetti.Ci sono moltissime informazioni in giro sul web.

Rendilo divertente e prendi un Libro sullo sviluppo di giochi in C++ quindi non diventa insensibile la mente troppo rapidamente.

Ecco alcuni posti che ho trovato utili mentre imparavo

http://www.cprogramming.com/

http://www.wikipedia.com

http://www.cplusplus.com/

Altri suggerimenti

Se conosci già Java/C#, ti consiglio di andare direttamente in C invece che in C++.Secondo il sito Web, GLUT ha gli stessi collegamenti per C e C++, quindi dovresti essere pronto.Ad ogni modo, il modo migliore per imparare il C è acquistare e leggere una copia di "The C Programming Language" e sedersi con il compilatore C e far funzionare le tue cose.

Effective C++ di Scott Meyers è un ottimo libro per aiutarti a imparare il C++.Fornisce una panoramica del linguaggio e introduce molti concetti chiave che utilizzerai durante lo sviluppo di praticamente qualsiasi programma C++.

Effective C++ di Scott Meyers è un ottimo libro per aiutarti a imparare il C++.Fornisce una panoramica del linguaggio e introduce molti concetti chiave che utilizzerai durante lo sviluppo di praticamente qualsiasi programma C++.

Adoro questo libro in tutte e 3 le edizioni, ed era uno dei libri di un corso che avevo da senior all'UT, ma non è semplicemente un libro iniziale.Puoi sentirti a tuo agio in C++ con molto meno, anche se certamente non sarai tutt'uno con il compilatore finché non avrai letto il lavoro di Meyer.

Non so se è ancora in stampa ma l'ho trovato Navigazione in C++ utile, ma mi sono trovato molto a mio agio anche con i suggerimenti di Pascal.Err, ovviamente sto dimenticando che 15 anni fa dovevi imparare cosa fosse l'OOP, ora è un po' più scontato.Quindi forse quello di Meyer non è fuori linea.Pensieri?

Wikipedia ha un articolo su confronti tra Java e C++.

Non devi preoccuparti delle eccezioni controllate in C++, ma devi conoscerle costante correttezza.

Ci sono due differenze principali:la sintassi e la gestione della memoria.

In C++ hai puntatori, che sono riferimenti a oggetti più potenti (o meno potenti a seconda della tua interpretazione della potenza), che già conosci da Java.

In Java potresti fare questo:

Thing mything = new Thing(); // mything is an object reference
mything.method();

In C++ faresti questo:

Thing * mything = new Thing(); // mything is an object pointer
mything->method();
delete mything;

La differenza sintattica è evidente:'->' invece di '.' Quando si chiama un metodo oggetto da un puntatore a un oggetto.In C++, devi liberare la memoria esplicitamente quando hai finito con un oggetto.Alla fine stai facendo la stessa cosa in C++ e Java, istanziando oggetti e chiamando metodi, inserendo punti e virgola inutili alla fine di ogni riga, ecc.C'è da meravigliarsi che Python stia diventando così popolare?:

mything = Thing() # mything is whatever I want it to be
mything.method()

Scorrere qualsiasi testo C++ semidecente ti aiuterà a riempire il resto dei dettagli.

Raccomando vivamente anche Bruce Eckel's Pensare in C++.Un libro fantastico per programmatori già esperti che vogliono entrare nella mentalità C++.

È così gentile da realizzare versioni elettroniche dei suoi libri disponibile gratuitamente.

Consiglio vivamente a chiunque impara C ++ legge StrousTrups "il linguaggio di programmazione C ++". Meyers ed Eckel hanno cose fantastiche, ma nulla batte l'apprendimento del ragazzo che ha deciso quale dovrebbe essere la lingua e come intendeva che fosse usato.

Ho avuto esattamente lo stesso problema.L'unico libro che sono riuscito a trovare è stato "Pro Visual C++ 2005 per sviluppatori C#" di Dean C.Testamenti.È una buona lettura con esempi eccellenti e penso che l'angolazione da cui proviene il libro sia probabilmente quello che stai cercando.

Avrai bisogno di una sensazione completamente diversa per la gestione della memoria.Pensa anche a liberare tutto ciò che non ti serve più.In Java e C# lasci semplicemente andare i tuoi oggetti e la memoria si riordina per te: non puoi farlo in CPP

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top