Onestamente, nell'apprendimento del C++ non ho mai preso un libro (non fiammante per favore). Il miglior consiglio che posso dare è quello di andare a this page e seguire il tutorial. Copre la maggior parte del linguaggio C++ (leggi: caratteristiche più comuni) e lo mantiene il più semplice possibile. Per quanto riguarda le API che sono importanti ... beh, è una questione di preferenza. Nessuno toolkit/api ha davvero "vinto", ma Qt, GTK-- (gtkmm) e wxWidgets sono tutti grandi giocatori. E oltre alle GUI, probabilmente vorrai imparare sia le API raw di winsock2 e di threading sia le interfacce di threading e di rete della libreria boost.Sono d'accordo sul fatto che MFC stia morendo e C# per lo sviluppo di sole sta assumendo un ruolo sempre più grande (anche su Linux/mono C# sta iniziando a prendere piede ... lentamente).
Inoltre, il modo migliore per imparare una lingua è codificare. Quindi non leggere solo una tonnellata intera - senza esperienza pratica non imparerai mai la lingua. Fai domande, rispondi a quelle che puoi e scrivi tutorial per te, se non altro. Annotare ciò che hai imparato è un ottimo riferimento, e il processo di raddrizzare tutto nella tua testa per scriverlo in un modo che un'altra persona può comprendere da solo è un ottimo modo per rafforzare i concetti. In un modo strano, ma apparentemente a ritroso, ho trovato che il modo migliore in cui imparo la programmazione è di aiutare gli altri con le loro domande.
@ Neil- non sono d'accordo sul fatto che le esercitazioni in linea siano "completamente sbagliate". Se non altro, lo stile che ti insegnano potrebbe essere orientato alla leggibilità piuttosto che all'ottimizzazione, il che è un'opzione in-mio-non-così-umile. Nella mia esperienza limitata ho trovato cplusplus.com un riferimento go-to per praticamente tutto.
In particolare, per rispondere alle vostre domande: 1. Non è necessario alcun libro di spessore. Ho sentito che i più sottili possono essere utili come riferimento rapido, però.
È completamente soggettivo e dipende dal tuo obiettivo. Le librerie di rete e multithreading di Boost sono probabilmente un buon inizio.
tra std :: string, std :: stringstream e getline (std :: istream &, std :: stringa &) si dovrebbe essere abbastanza buono. C++ ha un sacco di funzionalità integrate, ma non è troppo gonfio/enorme/impossibile da imparare. Approfittane. Tutto il parsing è già integrato.
fonte
2010-01-16 17:05:13
Vorrei raccomandare anche l'efficace C++ e l'efficace stl. – Rick
Amo la citazione che hanno su quel libro: "Chiunque legga solo questo libro e lavori attraverso gli esempi e gli esercizi avrà le stesse competenze di molti programmatori professionisti". Purtroppo, questo non sta dicendo molto. :-) – Ken