Está en la página 1de 4

MIR Qu diferencias hay entre C y C++?

C++ evolucion a partir del C, por lo tanto, C es un "subconjunto" de C++. Eso quiere decir que C est incluido en C++, en general, casi cualquier programa escrito en C podr compilarse con un compilador de C++, y funcionar. As que casi todas las diferencias son del tipo de qu tiene C++ y no tiene C. La principal diferencia es que C++ est orientado a objetos, es decir tiene clases. Los creadores de C++ crearon las clases basndose en una caracterstica que ya tena C: las estructuras. Estas se han mejorado y admiten funciones adems de datos como miembros. Para mantener cierta coherencia con C, y mantener el concepto de estructura en su idea original, se cre un nuevo concepto class. Pero las diferencias no terminan ah. Muchas de las mejoras introducidas para implementar las clases se pueden usar fuera de ellas, como la sobrecarga de funciones, y operadores, y los parmetros con valores por defecto. Tambin hay nuevos operadores, entre los que destacan new y delete, que mejoran sensiblemente el tratamiento de la memoria dinmica. Otra capacidad introducida son las referencias, normalmente usadas en los parmetros de las funciones. En sentido estricto, no aportan nueva funcionalidad a los programas, ya que se pueden simular mediante punteros, pero s aportan legibilidad y claridad.

En C++ es obligatorio usar prototipos de las funciones, en C no es necesario. Esta diferencia s puede ser importante a la hora de migrar cdigo de C a C++. La mayora de los problemas que encuentras los programadores de C cuando usan compiladores de C++, surgen de sta caracterstica. C++ introduce el nuevo formato de comentarios que comienzan con // y terminan al terminar la lnea. Tambin se han introducido varias mejoras en la conversin de tipos (casting). C++ incorpora nuevos conceptos de casting, por otra parte necesarios, debido sobre todo a la nueva problemtica de la programacin orientada a objetos: herencia y polimorfismo. En C++ no es obligatorio especificar void en la lista de argumentos de una funcin que no los usa, en C es s lo es. Para que C++ pueda usar funciones definidas para C en libreras "run-time", es necesario declararlas como extern "C". C++ admite la declaracin de variables locales dentro de sentencias como for, while, etc. Esto no est permitido en C. Por ejemplo: for(int i = 0; i < 10; i++); Aunque typedef an se admite en C++, y se sigue usando, ya no es necesario su uso con estructuras y uniones, en C++ no es obligatorio especificar las struct o union en la declaracin de variables. En C es muy utilizada la librera stdio.h ya que en esta se encuentran las funciones de entrada y salida de datos, como por ejemplo, printf, scanf, en cambio en C++ aparece una nueva librera llamada iostream.h donde se cuenta con la funciones cout y cin, para el flujo de datos.

La librera iostream.h sirve para facilitar la entrada y salida, esta posee el objeto cout, que sirve para manejar el flujo de salida estndar. El operador << es el flujo de salida. << escribe su operando derecho al flujo de salida especificado por su operando y devuelve el operando izquierdo como resultado. El objeto cin se encuentra definido en la librera iostream.h. El operador >> es el flujo de entrada. Hay que notar que un programa en C++ cuenta con ms palabras reservadas.

Caractersticas de C++
Caractersticas Nuevo estilo de comentario Tipos referencia Funciones en lnea Sobrecarga de operadores Parmetros por omisin Sobrecarga de funciones Propsito Proporcionan mejora en legibilidad de cdigo. Permitir paso de parmetros por referencia. Permite que las funciones se expandan en lnea; similares a las macros, pero con mayor eficacia. Los operadores estndar de C pueden trabajar con tipos definidos por el usuario. Permite especificar valores por omisin para parmetros de funciones. Permite que un grupo de funciones con nombres similares realicen tareas diferentes cuando son invocadas.

Ampliacin en los Sistemas de Tipos de Datos


Caractersticas Propsito Prototipo de funciones Proporcionan verificaciones de tipos en las llamadas a funciones. Etiquetas struct, union Simplifica la sintaxis de los tipos definidos por y enum son nombre el usuario. de tipos Operadores de Soporta asignacin dinmica de tipos asignacin de definidos por el usuario; administracin memoria dinmica de memoria ms segura. Enlazado con Captura de errores de paso de parmetros seguridad de tipos realizando verificacin de tipos en tiempo de enlace. Biblioteca de nuevos Permite mayor flexibilidad en la entrada y

flujos

salida de tipos definidos por el usuario; soporta E/S OO.

Extensiones OO
Caractersticas Clases Control de acceso Clases derivadas Funciones amigas Funciones virtuales Constructores Destructores Propsito Permite a las funciones y datos agruparse juntos; se utilizan para crear objetos. Permite restringir el acceso a los datos y funciones de una clase. Clases que heredan propiedades de las clases base existentes y permite la reutilizacin y extensin de clases. Permite acceso selectivo a miembros de acceso restringido de una clase. Mecanismo que facilita el polimorfismo y que determina la funcin a llamar en tiempo de ejecucin. Crean las funciones definidas por el usuario para la inicializacin de objetos. Se llaman automticamente para limpiar memoria cuando los objetos se tienen que borrar o liberar.

También podría gustarte