Domanda

L'ultima volta che ho usato pesantemente C ++ è stato anni fa, ed è stato rigorosamente fatta sulla piattaforma Windows. In particolare, ho usato Microsoft Visual Studio come il mio IDE e sviluppato alcuni schemi abituali di utilizzare la versione di Microsoft C ++. Ad esempio, ho usato void main () invece dello standard int main () .

Ora, sto prendendo una classe in cui è richiesto di sviluppare programmi per essere ANSI C ++ compatibile e il codice verrà compilato utilizzando g ++. Ho subito imparato che sistema ( "PAUSE") non funziona in g ++ ed è probabilmente una cosa di Microsoft.

Qualcuno sa di eventuali buone risorse (siti, tutorial, libri) dove posso imparare ciò che di più per essere meglio ANSI C ++ denuncia?

Grazie.

È stato utile?

Soluzione

Mi raccomando questi due:

  • comp.lang.c ++ newsgroup Usenet. Se è possibile entrare in possesso di un buon fornitore di servizi Usenet, e utilizzare un lettore di news, si dovrebbe essere in grado di sbarazzarsi dello spam. Io uso eternal-september.org , e piace molto.
  • Leggi il C ++ FAQ . Ha un sacco di informazioni.

Certo, entrambi non sono terribilmente grande se si desidera un'introduzione tutorial per C ++, ma sembra che tu abbia già delle conoscenze C ++, e hanno bisogno di imparare di più, e correggere le cattive abitudini. Dalla mia esperienza personale, quanto sopra due sono molto utili nel fare esattamente questo.

A proposito di comp.lang.c++, assicuratevi di leggere completamente il loro FAQ e vi si annidano un po 'prima di pubblicare. Lo stesso vale per StackOverflow naturalmente, anche se Appostantesi può non essere necessario qui.

Utilizzando g++, compilare i programmi con g++ -ansi -pedantic -Wall -Wextra -Weffc++, e assicurarsi di aver compreso tutte le avvertenze. Io uso:

g++ -Wextra -Wall -Weffc++ -ansi -pedantic -Woverloaded-virtual \
-Wcast-align -Wpointer-arith

Altri suggerimenti

Se si utilizza g ++, quindi compilare con il -pedantic e -STD = C ++ 98 bandiere. L'unico standard per ANSI C ++ è in realtà il documento standard ISO, che non può essere raccomandato per un principiante. Vi sbagliate sul sistema ( "PAUSE"), tra l'altro - del sistema () è parte di ANSI C ++ - è il parametro non è standardizzato, ma

.

La maggior parte dei libri di C ++ sarà indipendente dalla piattaforma (ovviamente a meno che non sono realizzati appositamente per Visual C ++). Ecco alcuni buoni libri che sono raccomandati dai professionisti su ## C ++

GCC sarà fare un buon lavoro di dirvi quando il codice non è ISO C ++ compatibile (non che si tratta di uno standard ISO, non uno standard ANSI). Impostare le opzioni di avviso -Werror -Wall, e semplicemente correggere tutte le avvertenze; A presto uscire di abitudini non conformi e ger sempre meno avvertimenti.

Ci sono un sacco di buoni tutorial gcc, ha una bandiera che farà in modo che il codice è ANSI C compatibile anche gcc -ansi -Wall -fsyntax-only -pedantic

* Wall - turn on all errors
* ansi - use strict ANSI C specification
* fsyntax-only - only checks syntax
* pedantic - reject violations

Per, i commenti Inoltre, è possibile utilizzare     * -Wextra per accendere un paio di avvertimenti in più,

update grazie per l'aggiornamento sulla capitalizzazione., E la menzione di -pedantic

Un sacco di fan gcc.

Le bandiere importanti da compilare con in Visual Studio per essere più possibile rigorose sono:

cl /Za /W4 ...rest of command...

/ Za disabilita estensioni specifiche di Microsoft e / W4 è il più alto livello di allarme (tranne / Wall, che si lamenta cose su ridicole).

Consiglio inoltre si utilizza una versione moderna di Visual Studio - vecchie versioni (VC6) erano ridicolmente non conforme, e Microsoft finge ufficialmente non fossero mai esistiti, a questo punto

.

mi sento di raccomandare.

siti web:

libri:

  • efficace C ++
  • stl efficace
  • moderno c ++ disegno
  • template metaprogrammazione

parlare / ascoltare esperti e comprendere ciò che hanno da dire e perché.

C ++ Primer (4 ° ndr) sembra essere il miglior libro per principianti in questi giorni come ci vuole un approccio moderno e insegna tutte le parti importanti del linguaggio. Accelerated C ++ è un altro libro spesso consigliato dai professionisti e serve come una buona introduzione, ma io non lo consiglio l'acquisto di più perché C ++ Primer bene lo sostituisce e copre meglio la lingua.

Nota: C ++ Primer Plus (che è un libro piuttosto male) non ha nulla a che fare con C ++ Primer

.

di Stroustrup Il C ++ linguaggio di programmazione ha sempre bisogno di essere menzionato, ovviamente, perché è scritto dal padre della lingua. Molte persone trovano illuminante, ma io personalmente non lo consiglio per imparare la lingua.

Tutti i libri che ho citato descrivono solo lo standard ISO senza estensioni non standard. I programmi in questi libri dovrebbero funzionare con qualsiasi compilatore C ++.

Mi piace visitare www.cplusplus.com ogni volta che ho un dubbio, specialmente circa la libreria standard C ++.

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