Recientemente comencé a aprender C ++, y lo disfruto mucho.
A menudo he leído que es más fácil escribir código incorrecto en C ++ que en la mayoría de los lenguajes, y que es mucho más profundo de lo que parece.
Como me gustaría evitar escribir código incorrecto, me preguntaba qué es exactamente lo que no debería hacer y qué debo hacer para escribir un buen código en C ++.
Respuestas:
Las trampas
Hay tantas dificultades en C ++, que si no las conoce, creará un código muy inestable, con toneladas de pérdidas de memoria y desbordamientos de búfer. En comparación con los idiomas más modernos con recolección de basura, debe liberar toda la memoria usted mismo. Además, el código es de muy bajo nivel. No hay nada que le impida sobrescribir su propio código de programa (que ha sido explotado por muchos hacks de IE).
Entonces, lo siguiente que debe aprender son las prácticas de programación que mitigan estos riesgos, por ejemplo, el uso de punteros inteligentes para manejar la liberación de objetos, envolver conjuntos de bytes en clases que manejan los datos, etc.
Puedo recomendar los libros de Scott Meyers "Effective C ++" y "More Effective C ++".
Esos libros esencialmente me enseñaron la belleza de C ++. Tenga en cuenta que estos no son libros para principiantes. Asumen que ya estás familiarizado con el idioma.
fuente
Modismos
C ++ admite una gran variedad de características. Del mismo modo, uno puede ser fácilmente tentado a usarlo de muchas maneras o estilos diferentes. Desafortunadamente, no se adapta bien a muchos de ellos, por lo que se vuelve tedioso, propenso a errores o lento si es así.
O redactado de manera diferente, sin saber realmente lo que haces, es increíblemente fácil usar C ++ de una manera incorrecta (que sería mucho mejor admitido en otros idiomas). Por lo tanto, el aprendizaje simple al hacer puede conducir en una dirección equivocada, por lo que leer buenos libros es probablemente más importante que en otros idiomas (vea esta publicación sobre el mismo tema).
Java, por ejemplo, es un lenguaje inherentemente orientado a objetos. No puedes programarlo de manera muy diferente. En C ++, sin embargo, puedes . Puede usarlo como lo haría en C o Java, y de ninguna manera es en lo que C ++ sobresale, por lo que será mejor que se quede con C o Java en estos casos.
Por lo tanto, realmente necesita conocer el estilo y las expresiones idiomáticas adecuadas para obtener C ++ correctamente, desde el principio. Desafortunadamente, pueden ser bastante complejos al principio, pero aquí hay algunos, desde simples hasta avanzados.
const
inline
una función,<<
o*
etc?)void*
). Use referencias o punteros inteligentesfuente
El poder de C ++ es que es un lenguaje increíble. El inconveniente de C ++ es que es un lenguaje increíble. Puede ser tanto asombroso como horrible al mismo tiempo.
Si desea aprenderlo, y no hay razón para que no lo haga, deberá aprenderlo bien. Necesitarás leer mucho . Hay algunos libros que lo ayudarán en su camino: C ++ acelerado lo ayudará a comenzar, especialmente si hace los ejercicios. Effective C ++, Effective STL, Exceptional C ++ y sus series continuas se encuentran entre las mejores del juego para obtener pequeños consejos sobre cómo mejorar sus formas de trabajo.
fuente
Creo que una cosa que ayudará en su camino de buen código es la experiencia . Por ahora, solo quédese atrapado en el idioma y no se preocupe demasiado por las "mejores prácticas de codificación" hasta que se sienta lo suficientemente cómodo como para comenzar a buscar formas de mejorar su uso. Aprenderá a reconocer lo que es bueno y lo que es malo. Una vez que tenga el idioma abajo, puede mirar hacia atrás y pensar "está bien, debería haber implementado esto de manera diferente" o "esto parece desordenado, ¿cómo puedo mejorarlo?"
Lo pienso así : si aprende un nuevo idioma hablado, no se sumerge directamente y aprende cada regla gramatical antes de comenzar a aprender palabras simples o cómo decir "¿dónde está la parada de autobús?". La programación (IMO) es como un segundo idioma (o tercero, cuarto, etc.). Trátelo como lo haría con cualquier otro idioma y aprenda haciendo. El resto vendrá con el tiempo.
fuente
Aclaración: en C ++ es más fácil escribir código incorrecto involuntariamente que en otros lenguajes. Puede escribir código incorrecto en cualquier lenguaje, pero en C ++ se establece con las mejores intenciones, pero a menudo termina en un lugar inesperado porque C ++: después de pasar de "novato" a decir "principiante avanzado", tiene la falsa impresión de que C ++ es más fácil de lo que realmente es. Pero C ++ está evolucionando y todas las nuevas bibliotecas de plantillas hacen que su vida sea más fácil (y más segura).
fuente
Dos cosas:
fuente