Solía escribir C ++ ampliamente entre 8 y 10 años atrás. Desde entonces me mudé a C # por razones profesionales. Sin embargo, de vez en cuando veo declaraciones como
"Si todavía está siguiendo manualmente las referencias de puntero, lo está haciendo mal"
o
"C ++ es perfectamente seguro siempre que utilice conceptos modernos como RAII y no asigne memoria manualmente como un desarrollador C en recuperación".
Ambos fueron procedimientos estándar hace una década. He visto que C ++ se ha mejorado considerablemente en los últimos tiempos; C ++ 0x en particular parece tener algunas capacidades nuevas. ¿Cuál es el mejor recurso para que un programador "C / old C ++" quede atrapado en patrones y prácticas "modernas" de C ++?
c++
design-patterns
c
programming-practices
c++11
GWLlosa
fuente
fuente
Respuestas:
Puede tener más que ver con los materiales de instrucción que la mayoría de las otras cosas, pero hace 8-10 años me parece que la forma en que se usó el idioma difería mucho en la actualidad. El enfoque actual se centra más en aprovechar las plantillas, la seguridad de tipos y la programación genérica, donde antes había más miedo a todo eso y las personas se enfocaban casi exclusivamente en la C con aspectos de objetos.
Los materiales de instrucción también están cambiando. Mientras que antes de que el libro de inicio estándar de C ++ lo llevara a través de printf, scanf, etc., casi ni siquiera los ve en libros con un enfoque moderno.
Algunos buenos libros son cualquiera de los libros rojos. Excepcional C ++, Más excepcional C ++, Metaprogramación de plantillas C ++, Diseño moderno de C ++, C ++ acelerado ...
Creo que mirar dónde trabajo actualmente puede ser un buen ejemplo. Vine aquí usando C ++ de una manera moderna y parece que la mayoría de los desarrolladores ni siquiera saben lo que estoy haciendo o por qué. Hacer objetos con el operador () en ellos, por ejemplo ... Tuve que comentar cada vez que ocurría bind () y, finalmente, me dijeron que desechara todo ese código. No sé qué hacen los inicializadores ... En realidad, ha sido realmente extraño y difícil para mí.
fuente
Para obtener una supervisión rápida de las características modernas presentadas bastante bien, no se equivocaría al ver la reciente presentación de Herb Sutter , "Escritura de código C ++ moderno: cómo ha evolucionado C ++ a lo largo de los años" de las características de C ++ en // build /.
Habla sobre por qué es un lenguaje mejor que C # (por supuesto, Microsoft cambia sus pantalones regularmente, y hoy usan la moda C ++, por lo que promocionarán esto, solo como si promocionaran C # como la respuesta al hambre mundial en una década Hace), pero al hacerlo describe todos los bits buenos (como la gestión de memoria 'automática' y las clases STL) y luego habla sobre los nuevos bits del estándar C ++ 0x.
fuente