2009-06-02 9 views
8

No he tocado C++ en más de 8 años. Recientemente tuve que arreglar un código C++, y aunque todavía puedo codificar, siento que ya no pertenezco al grupo de programadores C++. No conozco ninguna biblioteca, no presté atención a las nuevas funciones/mejoras/mejores prácticas del idioma.¿Volver a aprender los recursos modernos de C++?

Qt Creator y Qt parecen ser un buen conjunto de herramientas para lo que necesito ahora, ya que estoy interesado principalmente en el desarrollo multiplataforma.

¿Cuáles serían los buenos recursos para alguien como yo para volver a aprender rápidamente C++ y las mejores prácticas en el menor tiempo posible?

Mientras tanto, he estado haciendo japa y balbuceo en común, con pasos cortos hacia C, flexión, Scala y Haskell.

+0

Puede encontrar algunas buenas ideas aquí: http://stackoverflow.com/questions/777764/what-modern-c-libraries-should-be-in-my-toolbox/777779 –

+0

Tenga en cuenta que algunas de estas respuestas son no ¡más relevante en 2017! El lenguaje ha recorrido un largo camino en los últimos 8 años, además de que algunos de los recursos sugeridos aquí son anteriores a la pregunta en casi una década. – einpoklum

Respuesta

6

Conozca la S.tandard T.emplate L.ibrary.

Conozca el impulso, si realmente está a la vanguardia.

Lea los libros "effective C++" y "effective STL" de scott meyers.

Lea "C++ faq lite".

(no necsissarily en ese orden)

1

En primer lugar familiarizarse de nuevo con punteros, referencias, etc.

Entonces me quedo solo con Qt. Las reglas de documentación de Qt y IIRC, los contenedores de Qt son incluso más eficientes que los STL. El hecho de que el código para su GUI de Qt sea aún más elegante también se suma al atractivo de Qt. Agregue al hecho de que los documentos de Qt también contienen muchos ejemplos de código simple y algunos relativamente avanzados con los que puede jugar, y debe estar al día de nuevo en muy poco tiempo.

Sin embargo, no estaría de más saber/usar STL/Boost. Pero quédate (muy) lejos de GTK.

+1

no te olvides de los punteros. es como andar en bicicleta, golpeas el piso varias veces y nunca lo olvidas. Ahora que lo pienso, también obtienes la misma libertad de aire fresco ... – Javier

+1

Sin mencionar: olvídate de los indicadores simples. Los indicadores inteligentes son mucho mejores. (OK, estoy exagerando un poco, pero los punteros inteligentes tienen formas de recuperar el puntero descubierto). –

+2

¿Cómo se determina que los contenedores de Qt son más eficientes que los contenedores de STL? –

2

Si le gusta el desarrollo de la GUI, vaya con Qt. Es lo mejor que hay, y el precio es correcto. Se aparta un tanto de los estándares duros; pero no sin razón, y aún así, hace algunos esfuerzos para usar estilos de codificación similares cuando corresponda.

Si está más interesado en la CLI o los procesos del servidor, Qt aún puede ayudar; pero no tiene una gran ventaja. Allí sería más productivo ir con STL y (especialmente) Boost.

14

Leer:

Esas son las referencias de libros en C++ que resume todas las prácticas, filosofías y conocimientos modernos y efectivos sobre C++ (sin entrar en la metaprogramación).

Entonces, si quieres ir más lejos, léase:

Acerca de las bibliotecas: primero aprender acerca de la STL y aprende a usar Boost como una extensión STL "estándar".

+0

+1 para el diseño moderno de C++. Soy un desarrollador de loki-lib :) –

+0

+1 para C++ efectivo. Es el estándar de oro y, sinceramente, si estuviera a cargo de un equipo, me aseguraría de que todos lo leyeran. – rlbond

+0

La mejor lista de libros en C++ que he visto hasta ahora. Ojalá todos los desarrolladores de C++ leyeran cada uno de estos aspectos de principio a fin. –

1

¡Codifique el código y luego codifique más!

Intenta hacer proyectos en los que mezclas las técnicas que adquieres de los libros. Como se menciona en otras publicaciones, hay un montón de buenos libros sobre programación en C++. La aplicación de patrones de diseño y técnicas de estos libros en situaciones reales de codificación lo pondrán nuevamente en marcha rápidamente.

Además, mientras codifique para la experiencia, no tenga miedo de probar un botín de diferentes bibliotecas. La multiplicidad es buena, ya que le ayuda a tener una idea de cómo se crean las diferentes bibliotecas, y le ayuda a encontrar las bibliotecas que desea usar para proyectos reales más adelante.

2

Eche un vistazo a A.Koenig y B.Moo's Accelerated C++.

Los otros libros citados son buenos libros, pero requerirán mucho tiempo para leerlos todos. AC++ enseña C++ moderno (como en oposición con C++ histórico, no se trata de magia de plantillas).

El último libro de B.Stroustrup, Programming -- Principles and Practice Using C++, parece (todavía no lo he leído) también interesante.

Cuestiones relacionadas