2009-07-06 19 views
7

Ho bisogno di familiarizzare con C++ abbastanza rapidamente (non l'ho mai usato in precedenza) - l'apprendimento tramite Visual Studio (cioè C++ gestito) diventerà utile? O finirò per imparare le estensioni e le idiosincrasie del C++ in VS, piuttosto che il linguaggio stesso?Imparare C++ da zero in Visual Studio?

Se l'apprendimento in VS non è raccomandato, quale piattaforma/IDE suggerite?

Modifica: Qualcuno può approfondire ciò che VS nasconderà o gestirà per me durante la codifica del C++ non gestito? Ho davvero bisogno di imparare cose come i puntatori, la garbage collection e tutti i matti del linguaggio di basso livello. VS astratta o nasconde qualcosa di questo tipo da te?

Grazie per tutti i suggerimenti ..

risposta

15

Visual Studio (o la versione gratuita, Visual C++ Express) è una scelta perfetta per Windows. Su Linux, probabilmente finirai per usare GCC. Entrambi sono ottimi compilatori.

Visual C++ supporta sia "reale" nativo C++ e C++/CLI, la versione gestita .NET, quindi se si desidera imparare C++, è sufficiente creare un normale progetto C++.

Se si è interessati all'apprendimento di C++ standard "corretto", si noti che il compilatore consente per impostazione predefinita un numero di estensioni Microsoft, che è possibile disabilitare. (Proprietà progetto -> C/C++ -> Lingua -> Disabilita estensioni lingua).

Per la cronologia, GCC ha estensioni simili (che possono essere disabilitate chiamando il compilatore con --ansi), quindi questo non è solo Microsoft, che è grande, malvagio e non standard. ;)

+0

bella risposta, molto chiara, grazie – flesh

+0

ok ma Visual Studio offre molti modelli che aggiungono un sacco di cestino al progetto. Per imparare solo STL C++ con Visual Studio, è necessario installare un modello specifico o utilizzare uno di quelli esistenti? – xus

+1

Offre anche modelli che aggiungono * nulla * al progetto. Basta creare un progetto C++ Win32 e, nella finestra di dialogo dei dettagli, selezionare l'opzione "Progetto vuoto" – jalf

3

studio visivo non è necessariamente Managed C++. Puoi compilarlo con quell'opzione, ma non è necessario.

A mio parere, l'apprendimento tramite Visual Studio è una grande opzione poiché è possibile inserire direttamente il codice e non preoccuparsi troppo della configurazione del progetto.

3

Dipende tutto, il primo passo sarebbe leggere un bel po 'di libri, alcuni di base e alcuni avanzati come l'efficace C++.

Managed C++ è una bestia molto diversa dal puro C++, inoltre VS consente comunque di programmare in puro C++. Quindi, se il tuo obiettivo è imparare puro C++, non penso che tu abbia bisogno di imparare le estensioni gestite.

Puoi approfondire perché esattamente hai bisogno di imparare il C++? su quale tipo di progetto lavorerai?

Visual Studio, con il suo intellisense e l'aiuto è una buona piattaforma su cui imparare una lingua.

6

L'IDE di Visual Studio può essere utilizzato con diverse lingue: ad esempio C#, C++ gestito, e anche il vero e proprio (non gestito) C++, in modo da:

  1. È possibile utilizzare VS per il vero C++, e non solo per il C++ "gestito".
  2. Se vuoi solo imparare il C++, hai ragione, non vuoi imparare il C++ "gestito".
+0

grazie chris - ho ragione nel pensare 'visual C++' è il C++ non gestito dritto? – flesh

+0

"Visual C++" è comunemente usato per identificare i prodotti che utilizzano l'IDE di Visual Studio in combinazione con il linguaggio C++ o CLOS standard C++/CLI – MSalters

+0

@ flsh Se leggo 'visual C++' (ad esempio in un annuncio di lavoro) Supponiamo che intendesse il C++ standard, usando l'IDE VS e le API di Microsoft/Windows. – ChrisW

2

La mia esperienza: il mio primo tentativo di programmazione è stato C++ in VS. Imparare la sintassi era relativamente semplice, ma venendo a galla con la compilazione/collegamento/ecc. è stato più doloroso finché non sono uscito dall'IDE. Questi dettagli sono in gran parte gestiti per/nascosti da te.

Detto questo, se sei un programmatore esperto, e soprattutto se il tuo obiettivo è lavorare con C++ in VS (in un ambiente di lavoro o scolastico, per esempio), allora questa è una valida opzione di avvio rapido.

+0

puoi approfondire quali dettagli sono nascosti? ho davvero bisogno di essere preso in giro con i puntatori, la gestione della memoria e il coraggio di C++ - presumibilmente nessuna di queste cose è nascosta da voi? – flesh

+0

(Ha - Non sono sicuro di essere il migliore per insegnarti.Molto è ancora nascosto da me.) VS non nasconde il coraggio di C++ da te; ottieni la stessa corda in un IDE come fai sulla riga di comando. È una buona cosa; altrimenti non sarebbe C++. Quello a cui mi riferivo era il fatto che c'è molto che accade tra codice ed eseguibile. Quando stavo usando VS per la prima volta, non avevo alcun concetto di "makefile" (o equivalenti) e pensavo che "compile" significasse "push F5". Alla fine, vorrai sapere cosa c'è dietro quella tenda, anche se continui a lavorare nell'IDE. – TSomKes

+0

cool, grazie tsom – flesh

0

Per C++ mi sono abituato ai Compilatori Borland http://www.turboexplorer.com/. Le differenze tra i compilatori sono nelle librerie che usano (dll e include, ma alcune sono standard). Ho iniziato con DevC++ (un compilatore gratuito http://www.bloodshed.net/devcpp.html) e mi è piaciuto anche. La lingua è la stessa. Ma la cosa migliore è provare diversi compilatori e usare quello che ti piace di più.

E il meglio per l'apprendimento Il C++ sta avviando le applicazioni della console witth.

+1

Ci dispiace, ma i compilatori di Borland non hanno molto supporto per lo standard, sono buggy, alcune cose semplicemente non funzionano con loro. Questo è l'incubo che sto affrontando nel mio lavoro, liberandomi del vecchio codice schifoso che è stato creato a causa di un modo "non standard" che Borland ha creato il loro compilatore. Se ciò non bastasse, il loro compilatore, linker e IDE sono veramente buggy. Devo riaprirlo più volte al giorno. –

0

Per citare MSDN su Managed C++:

estensioni gestite per C++ è stato creato di estendere il linguaggio C++, permettendo di utilizzare il .NET Framework e target Common Language Runtime senza dover impara un nuovo linguaggio di programmazione .

Quindi "Managed C++" non è nulla che possa aiutarti a imparare C++. Inoltre, IMO il modo migliore per imparare una lingua è imparare le sue basi, non alcune estensioni. Questo non è correlato al compilatore/IDE utilizzato. Mentre VS potrebbe fornire utili funzioni utili utilizzando un semplice editor di testo con qualsiasi compilatore da riga di comando come g++ è perfettamente perfetto.

0

Se vuoi imparare semplicemente C++ e un minimo indispensabile di qualsiasi altra cosa. Suggerirei di installare cygwin e gcc/g ++. Il motivo per cui ti consiglio cygwin è dalla domanda che sembra che tu stia usando Windows. Altrimenti se stai usando un sistema di tipo * nix dovresti già avere gcc.

Tutto ciò che dovrete fare è creare i vostri file C++ nel vostro editor preferito e compilare. Dovrai ancora imparare come usare gcc e possibilmente creare file (specialmente se stai facendo un progetto non banale) ma questa è probabilmente la configurazione minima che potresti avere per imparare C++.

+1

Hai una strana definizione di "minimo indispensabile". Direi che installare VC++ Express (gratuito, una singola applicazione) è molto più semplice di Cygwin + compilatore + make + qualsiasi altra cosa tu abbia bisogno quando vai su quella rotta. – jalf

+0

Hai usato Cygwin?Non è così complesso per uno. In secondo luogo, il suo problema è imparare a non installare (leggi l'OP). Tutto quello che ha bisogno di imparare con cygwin è come usare il compilatore. Quando si utilizza un IDE è necessario imparare più di come compilare. Non sto difendendo contro gli IDE che uso eclipse me stesso. Sto solo cercando di rispondere alla sua domanda – hhafez

+1

Su un sistema simile a Unix (come Linux o Mac OSX), usa g ++. Su Windows, non vedo alcun motivo per non utilizzare VS. In Cygwin, devi sapere molto più di come compilare, proprio come hai bisogno di imparare alcune cose su VS. –

8

Visual Studio ha un ottimo debugger. Supporta i tipi di STL (versione 2008 è migliore) che ti aiuterà durante il debug.

Visual Studio insiste con le specifiche di Microsoft fin dal primo progetto di console si fanno (Nuovo-> Progetto-> applicazione console Win32)

// test123.cpp : Defines the entry point for the console application. 
// 

#include "stdafx.h" 


int _tmain(int argc, _TCHAR* argv[]) 
{ 
    return 0; 
} 

Qual è stdafx.h? Cos'è _tmain? Cos'è _TCHAR? (Non c'è bisogno di rispondere qui) Queste sono domande che non dovrebbero apparire nella testa di un novizio.

Ecco perché suggerisco di utilizzare la casella di controllo "Progetto vuoto" nel progetto Applicazione console Win32 e quindi "Aggiungi nuovo elemento" dal menu Progetto e scegliere un file cpp che darà a una pagina vuota in cui è possibile implementare il codice che leggi da un buon libro C++.

0

Ho bisogno di essere abbastanza veloce con C++ abbastanza rapidamente (non l'ho mai usato in precedenza) - l'apprendimento tramite Visual Studio (cioè C++ gestito) diventerà utile? O finirò per imparare le estensioni e le idiosincrasie del C++ in VS, piuttosto che il linguaggio stesso?

Non si deve confondere tra C++ gestito e VS. È possibile codificare il C++ non gestito (true) anche in Visual Studio. Visual Studio è solo un IDE.

Se l'apprendimento in VS non è raccomandato, quale piattaforma/IDE suggerite? Modifica: Qualcuno può approfondire ciò che VS nasconderà o gestirà per me durante la codifica del C++ non gestito? Ho davvero bisogno di imparare cose come i puntatori, la garbage collection e tutti i matti del linguaggio di basso livello. VS astratta o nasconde qualcosa di questo tipo da te?

VS come qualsiasi altro IDE nasconderà cose come le fasi di compilazione e collegamento da voi. Ma non nasconderà alcun carattere linguistico da te. Sì, puoi imparare i puntatori e altri materiali di basso livello con VS. C++ non gestito non supporta la garbage collection. Ma se sei un principiante e non hai fretta, il modo migliore è prendere un editor di testo, un compilatore, un debugger e un codice. g ++, gdb ed emacs/vi saranno una sostituzione migliore per VS per i principianti. In effetti sentirai come le cose sono compilate, collegate e infine viene fatto un binario. Ma ci vorrà del tempo e potrebbe essere necessaria una guida per essere al passo con gli strumenti. Con VS puoi essere in pochi minuti. Se il tuo obiettivo è quello di imparare la sintassi e le caratteristiche del linguaggio C++, allora fai un nuovo progetto VC++ vuoto in VS e codice.