2009-07-06 17 views
7

Necesito ponerme al día con C++ bastante rápido (nunca lo he usado anteriormente): ¿va a ser útil el aprendizaje a través de Visual Studio (es decir, Managed C++)? ¿O terminaré aprendiendo las extensiones e idiosincrasias de C++ en VS, en lugar del lenguaje en sí mismo?Aprendiendo C++ desde cero en Visual Studio?

Si no se recomienda aprender en VS, ¿qué plataforma/IDE sugieren?

Editar: ¿Alguien puede explicarme qué ocultará o gestionará VS cuando codifique C++ no administrado? Realmente necesito aprender cosas como punteros, recolección de basura y todos los aspectos prácticos del lenguaje de bajo nivel ... ¿VS abstrae u oculta algo de este tipo de cosas de usted?

Gracias por todas las sugerencias ..

Respuesta

15

Visual Studio (o la versión gratuita, Visual C++ Express) es una elección perfecta en Windows. En Linux, probablemente terminará usando GCC. Ambos son buenos compiladores.

Visual C++ admite C++ nativo y C++/CLI "real", la versión administrada de .NET, por lo que si desea aprender C++, simplemente cree un proyecto regular de C++.

Si le preocupa aprender C++ estándar "adecuado", tenga en cuenta que el compilador habilita por defecto varias extensiones de Microsoft, que es posible que desee desactivar. (Propiedades del proyecto -> C/C++ -> Idioma -> Deshabilitar extensiones de idioma).

Para el registro, GCC tiene extensiones similares (que se pueden deshabilitar llamando al compilador con --ansi), por lo que no se trata solo de que Microsoft sea grande, malo y no estándar. ;)

+0

buena respuesta, muy claro, gracias – flesh

+0

bien, pero Visual Studio ofrece muchas plantillas que agregan mucha basura al proyecto. Para aprender solo STL C++ con Visual Studio, ¿necesitamos instalar una plantilla específica o usar una de las existentes? – xus

+1

También ofrece plantillas que agregan * nada * al proyecto. Simplemente cree un proyecto Win32 C++, y en el cuadro de diálogo de detalles, marque la opción 'Vaciar proyecto' – jalf

3

El estudio visual no se administra necesariamente C++. Puede compilarlo con esa opción, pero no es necesario.

En mi opinión, aprender usando Visual Studio es una gran opción ya que puedes ingresar directamente al código y no molestar demasiado acerca de la configuración de tu proyecto.

3

Todo depende, el primer paso sería leer bastantes libros, algunos básicos y algunos avanzados como C++ efectivo.

Managed C++ es una bestia muy diferente a C++ puro, además VS permite programar en C++ puro de todos modos. Entonces, si su objetivo es aprender C++ puro, no creo que necesite aprender las extensiones administradas.

¿Puede explicar por qué exactamente necesita aprender C++? ¿En qué tipo de proyecto trabajarás?

Visual Studio, con su intellisense y ayuda es una plataforma bastante buena para aprender un idioma.

6

El IDE de Visual Studio se puede utilizar con varios idiomas: por ejemplo, C#, C++ administrada, y también el real (no administrado) C++, por lo que:

  1. Usted puede utilizar VS para la verdadera C++, no sólo para el C++ "administrado".
  2. Si solo quiere aprender C++, tiene razón, no quiere aprender C++ "administrado".
+0

gracias chris - ¿estoy en lo cierto al pensar 'visual C++' es el C++ directo no administrado? – flesh

+0

"Visual C++" se usa comúnmente para identificar los productos que usan el IDE de Visual Studio en combinación con el lenguaje estándar C++ o Microsofts C++/CLI – MSalters

+0

@flsh Si leo 'visual C++' (por ejemplo, en un anuncio de trabajo) me gustaría Supongamos que se refiere a C++ estándar, utilizando VS IDE y las API de Microsoft/Windows. – ChrisW

2

Mi propia experiencia: mi primer intento de programación fue C++ en VS. Aprender la sintaxis fue relativamente sencillo, pero a la hora de comprender/compilar/enlazar/etc. fue más doloroso hasta que me mudé del IDE. Esos detalles son en gran medida gestionados/ocultos para usted.

Dicho esto, si usted es un programador experimentado, y especialmente si su objetivo es trabajar con C++ en VS (en un ambiente laboral o escolar, por ejemplo), entonces esta es una opción viable de inicio rápido.

+0

¿Pueden detallar qué detalles están ocultos? Realmente necesito entender los indicadores, la administración de la memoria y las agallas de C++. Probablemente, nada de esto está oculto para ti. – flesh

+0

(Ha - No estoy seguro de que sea el mejor para enseñarle. Todavía me queda mucho por descubrir). VS no le oculta las entrañas de C++; obtienes tanta cuerda en un IDE como lo haces en la línea de comando. Eso es bueno; no sería C++ de lo contrario. A lo que me refería era al hecho de que hay mucho que sucede entre el código y el ejecutable. Cuando estaba usando VS por primera vez, no tenía ningún concepto de "archivo MAKE" (o equivalentes), y pensé que "compilar" significaba "presionar F5". Eventualmente, querrá saber qué hay detrás de esa cortina, incluso si continúa trabajando en el IDE. – TSomKes

+0

genial, gracias tsom – flesh

0

Para C++ Me acostumbré a los compiladores de Borland http://www.turboexplorer.com/. Las diferencias entre los compiladores se encuentran en las bibliotecas que utilizan (dlls e includes, pero algunas de ellas son estándar). Empecé con DevC++ (un compilador gratuito http://www.bloodshed.net/devcpp.html) y me gustó también. El idioma es el mismo. Pero lo mejor es probar diferentes compiladores y usar el que más te guste.

Y lo mejor para aprender C++ comienza con las aplicaciones de consola.

+1

Lo sentimos, pero los compiladores de Borland carecen de mucho soporte para el estándar, tienen errores, algunas cosas simplemente no funcionan con ellos. Esta es la pesadilla que realmente estoy enfrentando en mi trabajo, deshacerme del viejo código malicioso que se creó debido a una forma "no estándar" en la que Borland creó su compilador. Si eso no fuera suficiente, su compilador, vinculador e IDE son realmente defectuosos. Tengo que volver a abrirlo varias veces al día. –

0

Para citar MSDN en C++ administrado:

extensiones administradas para C++ fue creado para extender el lenguaje C++, lo que permite que utilice el .NET Framework y objetivo de la ejecución en lenguaje común sin tener que aprender un nuevo lenguaje de programación .

Por lo tanto, "Managed C++" no es nada que te ayude a aprender C++. Además, IMO, la mejor manera de aprender un idioma es aprender sus conceptos básicos, no algunas extensiones. Esto no está relacionado con el compilador/IDE utilizado. Mientras que VS podría proporcionar buenas características útiles usando un editor de texto simple con cualquier compilador de línea de comandos como g++, está perfectamente bien también.

0

Si desea aprender simplemente C++ y un mínimo de cualquier otra cosa. Sugeriría instalar cygwin y gcc/g ++. La razón por la que recomiendo cygwin es por la pregunta de si parece que está usando Windows. De lo contrario, si está utilizando un sistema de tipo * nix, ya debería tener gcc.

Todo lo que necesita hacer es crear sus archivos C++ en su editor favorito y compilarlos. Todavía tendrá que aprender cómo usar gcc y posiblemente crear archivos (especialmente si está realizando un proyecto no trivial), pero esa es probablemente la configuración mínima que podría tener para aprender C++.

+1

Tiene una extraña definición de "mínimo básico". Yo diría que la instalación de VC++ Express (aplicaciones gratuitas, una sola) es mucho más simple que el compilador + compilación Cygwin +, o cualquier otra cosa que necesites cuando vayas por esa ruta. – jalf

+0

¿Has usado cygwin?No es tan complejo para uno. En segundo lugar, su problema es aprender a no instalar (leer el OP). Todo lo que necesita aprender con cygwin es cómo usar el compilador. Al usar un IDE, necesita aprender más que solo cómo compilar. No estoy defendiendo contra los IDEs. Yo uso eclipse yo mismo. Solo estoy tratando de responder su pregunta – hhafez

+1

En un sistema tipo Unix (como Linux o Mac OSX), use g ++. En Windows, no veo ninguna razón para no usar VS. En Cygwin, necesita saber más que solo cómo compilar, al igual que necesita aprender algunas cosas sobre VS. –

8

Visual Studio tiene un muy buen depurador . Tiene soporte para tipos STL (la versión 2008 es mejor) que te ayudará mientras se depura.

Visual Studio insiste con las características específicas de Microsoft desde el primer proyecto de consola haces (Nuevo-> Proyecto-> Aplicación de consola Win32)

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

#include "stdafx.h" 


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

¿Cuál es stdafx.hy? ¿Qué es _tmain? ¿Qué es _TCHAR? (Por cierto, no hay necesidad de responder aquí) Estas son preguntas que no deberían aparecer en la cabeza de un novato.

Es por eso que sugiero usar la casilla de verificación "Proyecto vacío" en el proyecto Win32 Console Application y luego "Agregar nuevo elemento" en el menú Proyecto y elegir un archivo cpp que dará una página en blanco donde puede implementar código que leíste de un buen libro de C++.

0

Necesito ponerme al día con C++ bastante rápido (nunca lo he usado anteriormente) - ¿va a ser útil el aprendizaje a través de Visual Studio (es decir, Managed C++)? ¿O terminaré aprendiendo las extensiones e idiosincrasias de C++ en VS, en lugar del lenguaje en sí mismo?

No debe confundirse entre administrado C++ y VS. Puede codificar C++ no administrado (verdadero) incluso en Visual Studio. Visual Studio es solo un IDE.

Si no se recomienda aprender en VS, ¿qué plataforma/IDE sugieren? Editar: ¿Alguien puede explicar lo que VS ocultará o gestionará para mí al codificar C++ no administrado? Realmente necesito aprender cosas como punteros, recolección de basura y todos los aspectos prácticos del lenguaje de bajo nivel ... ¿VS abstrae u oculta algo de este tipo de cosas de usted?

VS al igual que cualquier otro IDE ocultará elementos tales como las etapas de compilación y vinculación de usted. Pero no ocultará ninguna característica de tu idioma. Sí, puedes aprender punteros y otras cosas de bajo nivel con VS. C++ no administrado no es compatible con la recolección de basura. Pero si eres un principiante y no tienes prisa, entonces la mejor manera es tomar un editor de texto, un compilador y un depurador y código. g ++, gdb y emacs/vi serán una mejor sustitución para VS para principiantes. De hecho, sentirás cómo se compilan las cosas, se vinculan y finalmente se crea un binario. Pero tomará tiempo y puede requerir orientación para estar arriba con las herramientas. Con VS puede estar despierto en minutos. Si su objetivo es aprender la sintaxis y las características del lenguaje C++, siga adelante y cree un nuevo proyecto vacío de VC++ en VS y código.