Diferencia clave: C y C ++ son dos lenguajes de programación de computadora diferentes. C ++ fue desarrollado a partir del lenguaje de programación C; Sin embargo, son muy diferentes en la naturaleza. La diferencia más obvia es que C es un lenguaje orientado a procedimientos, mientras que C ++ es compatible con la programación tanto de procedimiento como orientada a objetos, por lo que a menudo se denomina lenguaje híbrido.
C es uno de los lenguajes de programación más antiguos utilizados actualmente y es uno de los lenguajes de programación más utilizados. Se ha utilizado constantemente en aplicaciones que previamente se habían codificado en lenguaje ensamblador. Esto incluye el sistema operativo de la computadora UNIX. C también ha influido directa o indirectamente en muchos de los lenguajes de programación posteriores, como C #, D, Go, Java, JavaScript, Limbo, LPC, Perl, PHP, Python y el shell C de Unix. A pesar de todos estos nuevos lenguajes, C sigue siendo un lenguaje de programación popular.
C ++ originalmente comenzó como una mejora a C. Fue diseñado para ser compatible con fuente y enlace con C. Sin embargo, agregó clases, funciones virtuales, sobrecarga de operadores, herencia múltiple, plantillas, manejo de excepciones, etc. Finalmente, se desarrolló. suficiente para ser considerado un lenguaje de programación por derecho propio. Originalmente se ratificó en 1998 como lenguaje de programación certificado ISO / IEC 14882: 1998. Hoy en día, C ++ ahora se usa comúnmente para el diseño de hardware.
C es un lenguaje de programación de propósito general que usa punto y coma (;) como terminador de una declaración, así como llaves ({}) para agrupar bloques de declaraciones. Cuenta con instalaciones para la programación estructurada y su diseño proporciona construcciones que se pueden asignar de manera eficiente a las instrucciones típicas de la máquina. También permite el alcance y la recursión de las variables léxicas y tiene un sistema de tipo estático, que evita muchas operaciones involuntarias.
Sin embargo, en comparación con C ++, C tiene numerosas limitaciones. Como C no está orientado a objetos, no es compatible con los conceptos de OOPS. C no admite la sobrecarga de funciones y operadores. No puede usar funciones dentro de estructuras. No admite funciones virtuales ni variables de referencia, ni manejo de excepciones. Tampoco soporta variables de referencia. Además, C tampoco encapsula o asegura datos. En comparación, C ++ soporta todas estas características.
Los dos idiomas también difieren en la forma en que funcionan las funciones de memoria de direcciones, entrada-salida y programación de GUI. Por ejemplo, C usa las funciones calloc (), malloc () y free () para asignar y desasignar memoria, mientras que C ++ utiliza nuevo y eliminar. C usa scanf () e printf () para entrada y salida, mientras que C ++ usa los operadores cin >> y cout <<. C es compatible con la herramienta GTK para la programación GUI, mientras que C ++ es compatible con las herramientas Qt para la programación GUI. Otra diferencia es que C requiere que uno declare todas las variables en la parte superior del programa, mientras que en C ++, las variables se pueden declarar en cualquier parte del programa.
Además, generalmente se considera que C ++ es más fácil de aprender, ya que es más fácil de usar que C. C ++ también tiene numerosas funciones adicionales que facilitan la codificación, especialmente para alguien que es nuevo en el marco de C. Sin embargo, muchos afirman que realmente importa. Los dos idiomas difieren tanto, que de hecho pueden ser dos idiomas diferentes entre sí. Una cosa a tener en cuenta es que C es mucho más estructurado que C ++, mientras que C ++ fue diseñado para ser más expresivo y abstracto que C.
Comparación entre C y C ++:
do | C ++ | |
Fundado | Desarrollado por Dennis Ritchie en AT&T Bell Labs entre 1969 y 1973. | Desarrollado por Bjarne Stroustrup en los Laboratorios Bell a partir de 1979. |
Código fuente | Código fuente del programa de formato libre. | Desarrollado originalmente a partir del lenguaje de programación C |
Idioma | Procedimiento orientado al lenguaje | Soporta paradigmas de programación tanto de procedimiento como orientados a objetos; por lo tanto, a menudo se llama un lenguaje híbrido. |
Enfoque | Sigue el enfoque de arriba hacia abajo. | Sigue el enfoque de abajo hacia arriba. |
Relación | C es un subconjunto de C ++. No puede ejecutar código C ++. | C ++ es un superconjunto de C. C ++ puede ejecutar la mayor parte del código C, mientras que C no puede ejecutar el código C ++. |
Conducir | Lenguaje basado en funciones | Lenguaje orientado a objetos |
Atención | Se centra en el método o proceso en lugar de datos. | Se enfoca en los datos en lugar del método o procedimiento. |
Bloques de construcción | Funciones | Objetos |
Palabras clave | Contiene 32 palabras clave | Contiene 52 palabras clave |
Conceptos OOPS | Como el lenguaje 'C' es un lenguaje orientado a procedimientos, no admite conceptos OOPS como clase, objeto, herencia, polimorfismo, ocultación de datos, etc. | Como lenguaje orientado a objetos, C ++ admite clases, objetos, ocultación de datos, polimorfismo, herencia, abstracción, etc. |
Funciones |
|
|
Funciones de memoria | Utiliza las funciones calloc (), malloc () y free () para asignar y desasignar memoria. | Utiliza operadores nuevos y eliminados para el mismo propósito. |
Encapsulacion | No soporta. Los datos y funciones son entidades separadas y libres. | Apoya la encapsulación. Los datos y las funciones se encapsulan juntos en forma de un objeto. La clase de objetos proporciona un plano de la estructura del objeto. |
Ocultación de información | C no admite la ocultación de información. Aquí, los datos son entidades libres y pueden ser manipulados por un código externo. | La encapsulación oculta los datos para garantizar que las estructuras de datos y los operadores se utilizan según lo previsto. |
Datos | Admite tipos de datos integrados y primitivos. Los datos no están protegidos debido a que no están orientados a objetos. | Admite los tipos de datos integrados y definidos por el usuario. Los datos están protegidos (ocultos) en C ++ |
Nivel | Lenguaje de bajo nivel | Lenguaje de nivel medio |
De entrada y salida | El lenguaje 'C' usa scanf () y printf () para entrada y salida. | El lenguaje 'C ++' usa los operadores cin >> y cout << para entrada y salida. |
Declaración de Variables | C requiere que uno declare todas las variables en la parte superior del programa. | En C ++, las variables se pueden declarar en cualquier parte del programa antes de usarlas. |
Declaración múltiple | Se permiten declaraciones múltiples de variables globales. | No se permiten declaraciones múltiples de variables globales. |
Cartografía | El mapeo entre datos y funciones es difícil y complicado. | El mapeo entre datos y funciones se puede usar usando "Objetos" |
Programación GUI | C es compatible con la herramienta GTK para la programación GUI | C ++ soporta herramientas Qt para la programación GUI |
Herencia | La herencia no es posible en C | La herencia es posible en C ++ |
Extensión de archivo | Tiene la extensión de archivo .c | Tiene la extensión de archivo .cpp |
Archivo de encabezado predeterminado | El archivo de encabezado predeterminado que se usa en el lenguaje C es stdio.h | El archivo de encabezado predeterminado utilizado en C ++ es iosteam.h |
Algunos ejemplos de diferencia entre C y C ++:
Ejemplos | do | C ++ |
Declaración variable | Solo en la parte superior: int i; para (i = 10; i <10; i ++) | En cualquier parte del programa: para (int i = 10; i <10; i ++) |
Asignación de memoria | Malloc: int * x = malloc (sizeof (int)); int * x_array = malloc (sizeof (int) * 10); | Nuevo: int * x = new int; int * x_array = new int [10]; |
Liberar memoria | Gratis: libre (x); libre (x_array); | Borrar: eliminar x; eliminar [] x_array; |