Sunteți pe pagina 1din 4

Diferencias de C y C++

C es un lenguaje libre estandarizado por ISO MUY PEQUEÑO que admite programación estructurada
(la de toda la vida), nada más. Útil en programación de microchips, sistemas operativos, drivers y
programación web... Poco más.
C++ es un lenguaje libre estandarizado por ISO MUY GRANDE, que admite: Programación
estructurada (la de toda la vida), la totalidad de la POO (objetos, herencia simple, herencia múltiple,
polimorfismo, upcasting, downcasting, RTTI, interfaces, clases abstractas, clases amigas,
operadores, sobrecarga... y mil cosas más avanzadas), programación genérica (plantillas, STL,
conceptos de contenedores, estructuras de datos genéricas, <b>metaprogramación</b>... es una
programación que no dispone ningún otro lenguaje mayoritario por el momento)... y otras
características más avanzadas como los punteros inteligentes, programación lambda, programación
"física"... También se usa como programación por eventos (MFC, Qt, Gtk y otras GUIs). Se usa para
cualquier cosa, desde sistemas operativos hasta los juegos 3D de última generación pasando por
servidores, pasando por las típicas aplicaciones de escritorio o un Office o OpenOffice, un reproductor
WinAMP y Windows Media Player, un explorador web (Internet Explorer, Mozilla, Firefox...), un cliente
eMule, un cliente Torrent.
C# es un invento de Microsoft (lenguaje propietario) que mezcla las características básicas de C++
(no las avanzadas) simplificándolas al estilo Java y ofreciendo un framework. El problema es que es
.Net, y deja de ser código nativo/portable. Eso sí, el framework provee bastante facilidad de
programación de tareas comunes, al igual que Java. Por ello se genera el debate ¿Java o C#? Su
funcionalidad viene a ser parecida. .Net es más nativo y Java más virtual.

Aunque C++ es un superconjunto de C, existen algunas diferencias entre los dos. En primer lugar, en
C cuando una función no toma parámetros, su prototipo tiene la palabra void. Sin embargo en C++
void no es necesario(opcional).
Prototipo en C: char f1(void);
Prototipo en C++: char f1();
Otra diferencia entre C y C++ es que en un programa de C++ todas las funciones deben estar en
forma de prototipo, en C los prototipos se recomiendan, pero son opcionales. También si una función
de C++ es declarada para devolver un valor obligatoriamente la sentencia return debe devolver un
valor, en C no es necesario que se devuelva.
Otra diferencia es el lugar donde se declaran las variables locales. En C, deben ser declaradas solo al
principio del bloque, mientras que en C++ las variables se pueden declarar en cualquier punto.
Aunque es conveniente realizarlo siempre al comienzo de la función.
C fue creado en 1972 por Dennis M. Ritchie en los Laboratorios Bell como evolución del anterior
lenguaje B, a su vez basado en BCPL.
C++, por su parte, fue creado a mediados de los años 1980 por Bjarne Stroustrup. La intención de su
creación fue el extender al exitoso lenguaje de programación C con mecanismos que permitan la
manipulación de objetos.
Así que C es el lenguaje original, mientras que C++ es una ampliación de C, por eso el ++.
A mi cuando me enseñaron a programar me dijeron que iba a aprender a programar en C++, pero en
verdad me enseñaron únicamente C, así que muchos profesores en realidad no saben lo que es
programar en C++. Veamos un hola mundo en los dos programas:
En C

1 #include<stdio.h>
2
3 int main()
4 {
5 printf ("Hola Mundo");
6 return 0;
7 }

En C++

1 #include<iostream>
2
3 using namespace std;
4
5 int main()
6 {
7 cout << "Hola mundo";
8 return 0;
9 }

Para el tipo de programas que se estarán mostrando en este blog la diferencia más importante es la
entrada y salida de datos. Así que veamos un ejemplo de entrada y salida de datos de cada programa:

En C

1 #include<stdio.h>
2
3 int main()
4 {
5 int radio;
6 float area, perimetro;
7
8 // SALIDA: mensaje un pantalla
9 printf("Introduce el radio del circulo: ");
10
11 //ENTRADA: recibir dato desde teclado
12 scanf("%d", &radio);
13
14 // calculos
15 area = 3.1416 * radio * radio;
16 perimetro = 3.1416 * radio * 2;
17
18 //SALIDA: resultado en pantalla
19 printf("El area es %.2f y el perimetro %.2f", area, perimetro);
20 getch();
21
22 return 0;
23 }

En C++

1 #include<iostream>
2 using namespace std;
3
4 int main()
5 {
6 int radio;
7 float area, perimetro;
8
9 // SALIDA: mensaje un pantalla
10 cout << "Introduce el radio del circulo: ";
11
12 //ENTRADA: recibir dato desde teclado
13 cin >> radio;
14
15 // calculos
16 area = 3.1416 * radio * radio;
17 perimetro = 3.1416 * radio * 2;
18
19 //SALIDA: resultado en pantalla
20 cout << "El area es " << area << " y el perimetro " << perimetro;
21 cin.get();cin.get();
22
23 return 0;
24 }

Con estos dos programas pedir un dato en C++ es mucho mucho más simple que en C. Sin embargo,
el asunto de los << y >> puede llegar a ‘asustar’ a los recién iniciados en la programación.

Pedir un dato en C
scanf("modificador", &nombre de la variable);

Pedir un dato en C++


cin >> nombre de la variable;

Mostrar un dato en C
printf("Dato: modificador", nombre de la variable);

Mostrar un dato en C++


cout << "Dato: " << nombre de la variable;

Los modificadores son los siguientes: %d para int, %f para float, %s para string, %c para char.
Librerías en C++
Por simple convención las librerías en C terminan en ‘.h’ (punto hache). Todas las librerías de C
sirven para C++, sin embargo, también por convención, se elimina la terminación ‘.h’ y mejor se
agrega ‘c’ al principio.

Libreria en C Librería en C++


math.h cmath
string.h cstring
time.h ctime
etcetera.

El ‘namespace’
C como lenguaje tiene un conjunto de palabras reservadas, como por ejemplo: if, for, while, int, float,
… C++ es una ampliación, por lo tanto tiene que agregar nuevas palabras reservadas. Éstas palabras
reservadas están en un ‘namespace’ (espacio de nombres). En específico cout y cin están el
namespace std (standard).

Si no declararamos que vamos a usar el namespace std (using namespace std;), cada vez que
quisieramos usar cout, tendríamos que escribir std::cout.

S-ar putea să vă placă și