Debería aprender C ++ basado en el estándar nuevo o viejo (especificación)?

StackOverflow https://stackoverflow.com/questions/865209

  •  21-08-2019
  •  | 
  •  

Pregunta

OK, estoy considerando de entrar en C ++ desarrollo en los próximos meses (no hay fecha fija). Soy vagamente familiarizado con el lenguaje (principalmente C), así como algunos conceptos básicos de la OO, MI, plantillas, excepciones, patrones, STL utilizado. Y ahora estoy en el punto en el tiempo donde me gustaría dominar el idioma en profundidad. Y la pregunta natural es si debería
comenzar con la corriente C ++ 03 o C ++ 0x estándar.

Para sugerir cuál es la mejor manera de ir de un usuario a gurú, dado que la nueva norma está casi aquí, y probablemente se mantendrá durante muchos años por venir.

Gracias

¿Fue útil?

Solución

Mi recomendación es comenzar a cabo en el centro. Comience con C ++ 03, pero revise las características y C ++ 0x libs que algunos compiladores ya están ofreciendo cada cierto tiempo. A partir de ahora, C ++ 03 es el estándar (no sólo formalmente, pero la mayoría del código se encuentra será estrictamente C ++ 03).

Ahora, si usted piensa en el aprendizaje ir para el mejor: comenzar rápidamente con fundamentos STL y saltar en bibliotecas Boost de inmediato. Aprender las plantillas de todo el camino, sigue leyendo metaprogramming. C ++ moderno uso de 03 le conseguirá en el camino correcto para C ++ 0x.

Otros consejos

Aprender el antiguo estándar de C ++ 03. C ++ 0X es todavía un par de años de distancia (al menos) a partir incluso de ser ratificado como estándar. Una vez que está estandarizada, que va a tomar tiempo antes de cualquier implementaciones conformes parece que el apoyo de todas sus funciones, y que va a tomar un incluso ya de tiempo antes de implementaciones de C ++ 0X vuelto significativamente popular y frecuentemente utilizado.

En mi opinión, aprender C ++ 03 es más práctico. Si no te importa el aprendizaje de nuevas características, pero puede utilizar parcial durante varios años, C ++ 0x es mejor. La buena noticia es g ++ versión nueva y VC ++ 2010 partes ya se han aplicado de nuevo C ++ 0x características.

El aprendizaje incluye el nuevo C ++ 0x es una gran manera de aprender más acerca de C ++ 03 en profundidad, porque se ve cómo C ++ 03 obras, los problemas con él, y qué C ++ 0x propone hacer para resolver esos problemas.

he tenido esta experiencia recientemente el aprendizaje sobre las nuevas referencias rvalue y mover la semántica. En C ++ 03 hay un montón de creación temporal innecesaria y copiado en expresiones, aprender acerca de por qué c ++ 03 tiene este problema y cómo C ++ 0x resuelve este problema era bastante esclarecedor e informó a mi actual desarrollo de C ++.

Esto va a ser un par de años antes de que los compiladores de C ++ 0x son comunes. Así que por el momento, no tiene muchas opciones. Aprender C ++ 03, y luego se puede aprender el nuevo material por separado, cuando llegue el momento. Las diferencias fundamentales no son tan grandes. 0x es sobre todo una cuestión de las nuevas características que se atornilla y características existentes está generalizando y racionalizado. El conocimiento de C ++ 03 seguirá siendo aplicable.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top