2009-05-11 32 views
7

Actualmente estoy aprendiendo C++ y me gustaría comenzar a leer otros códigos fuente para obtener sugerencias. Me preguntaba si alguien tiene ejemplos de C++ bien escrito que puedo ver (y no recoger malos hábitos)Ejemplos bien escritos de C++

+0

Muy similar: http://stackoverflow.com/questions/841855/some-useful-site-with-examples-c-and-java – lothar

Respuesta

7

Como probablemente hayas descubierto, hay muchas fuentes de Internet para ejemplos de código C++. StackOverflow, CodeProject, etc. todos tienen ejemplos de fuente. Pero, por supuesto, están por todo el mapa en términos de calidad y valor educativo.

Creo que, en esta área, los libros aún prevalecen sobre Internet. No hay sustituto para ir a la librería, hojear algunos tomos y elegir uno que le parezca legible. Han sido revisados ​​(a diferencia de los envíos de Internet), por lo que es más probable que las muestras funcionen y sean de alta calidad.

Mientras que los libros suelen tener pequeños fragmentos de código o algunas funciones, por lo general vienen con un CD o URL que apunta a ejemplos más completos.

O'Reilly, Pensando en C++, Petzold y Wrox (y más) todos tienen buenos libros sobre C++.

4

¿La biblioteca Boost? En general, se considera parte del código C++ de mayor calidad escrito. (Mucho de esto también es más o menos ilegible a menos que seas un gurú de C++)

En general, te recomiendo que no seas cauteloso con este enfoque. En C++, el código fuente probablemente no será tan informativo como en muchos otros idiomas.

Si ve algún código de Python, puede suponer que es correcto mientras se ejecuta. Si está escrito por alguien que parece saber lo que está haciendo, incluso puede suponer que está bien escrito.

En C++, hay tantas trampas desagradables y sutiles excepciones a cada regla que realmente necesita saber lo que está haciendo. Pasar por lo que compila, o lo que parece funcionar, o lo que vio en el código fuente de otra persona es peligroso, y prácticamente garantiza que tarde o temprano terminará con un programa que depende de un comportamiento indefinido, y se bloqueará cuando menos lo espero.

Si fuera usted, trataría de atenerme a los libros. Hay algunos muy bien escritos, que además de permitirle ver algún código fuente, también le enseñan el idioma "correctamente". Y mientras se adhiera a autores de buena reputación, se asegurará de que no le enseñarán ningún mal hábito ni lo sumergirán en un código no portátil.

+6

Boost es bastante alto C++ Kung Fu. Explota hasta el último truco de la programación de plantillas, y como programador de C++ durante 20 años, todavía me resulta difícil comprender la implementación de Boost (y en ocasiones incluso su uso) sin pensar cuidadosamente en cada una de las líneas. Es lo último que recomendaría para un novato. –

+0

Estoy de acuerdo. Lo mencioné porque si * desea * aprender C++ mirando el código fuente de otras personas, al menos debería mirar algún código de calidad. Es mejor mirar un código avanzado que no comprenderá, que la basura no portátil con errores que la mayoría de los tutoriales en línea de C++ "enseñan". Y como dije, mirar el código fuente probablemente no sea una muy buena forma de aprender el idioma en cualquier caso. – jalf

2

En mi opinión, si lees un buen libro de C++ (como "El lenguaje de programación C++", "(Más) C++ efectivo" o "C++ excepcional"). No solo aprenderá buenas prácticas sino que también tendrá sentido de cómo escribir código.

Por supuesto, las muestras en estos libros son en su mayoría artifical. Si lees "aplicaciones del mundo real", siempre encontrarás fragmentos de código que son bastante feos, pero a veces no solo hubo una buena solución limpia para ello (o una solución no tan limpia fue simplemente más eficiente en términos de velocidad).

Así que no sé si es mejor comenzar con aplicaciones reales, ya que también pueden ser muy abrumadoras debido a la cantidad de códigos y la complejidad, mientras que los códigos de muestra en Libros son compactos y claramente distribuidos.

Creo que para empezar, sería mejor que leyera referencias como los libros que he enumerado. Si tiene que ser flexible en algún momento en el futuro y debe producir un código feo, al menos sabrá que es un código feo y no lo confundirá con "así es como debería ser";)

0

Si lo desea un proyecto completo para navegar, yo recomendaría Ogre3d. Es un motor de gráficos bien estructurado con una documentación decente y el código fuente en sí también es bueno.

2

Leer a través del software de código abierto puede ser muy educativo si ya tiene un poco de conocimiento de C++. Si recién está comenzando, me imagino que las bibliotecas Boost irán directamente sobre su cabeza. Puede comenzar con el proyecto WebKit, que es un excelente recurso. Además, Google libera gran parte de su código fuente, que también resulta MUY limpio: Protocol Buffers es un gran ejemplo. Y mientras lo hace, también puede leer su C++ Style Guide también.

Personalmente, comencé a aprender C++ recogiendo un par de libros y escribiendo algunas pequeñas aplicaciones de desafío. Tenga en cuenta que aprender un idioma tan extenso como C++ lleva mucho tiempo, como 10 years long.

Hace muchos años, me dijeron que si alguna vez quería una carrera como desarrollador de C++, definitivamente debería leer Effective C++ de Scott Meyers. Eso debería evitar que caigas en muchos de los peligros del idioma. Si encuentra que necesita algo aún más simple, comience con El lenguaje de programación C por Kernighan & Ritchie. ¡Se paciente y buena suerte!

Cuestiones relacionadas