Me han estado llegando comentarios y correos con dudas, correcciones y todo tipo de insultos (no, eso último no) y decidí responder todos ellos con este post en el que aclararé lo que es C y lo que es C++ y sus diferencias.
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
#include int main() { printf ("Hola Mundo"); return 0; }
En C++
#include using namespace std; int main() { cout << "Hola mundo"; return 0; }
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
#include int main() { int radio; float area, perimetro; // SALIDA: mensaje un pantalla printf("Introduce el radio del circulo: "); //ENTRADA: recibir dato desde teclado scanf("%d", &radio); // calculos area = 3.1416 * radio * radio; perimetro = 3.1416 * radio * 2; //SALIDA: resultado en pantalla printf("El area es %.2f y el perimetro %.2f", area, perimetro); getch(); return 0; }
En C++
#include using namespace std; int main() { int radio; float area, perimetro; // SALIDA: mensaje un pantalla cout <> radio; // calculos area = 3.1416 * radio * radio; perimetro = 3.1416 * radio * 2; //SALIDA: resultado en pantalla cout << "El area es " << area << " y el perimetro " << perimetro; cin.get();cin.get(); return 0; }
Lo que noté al hacer estos dos programitas es que 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.
Espero que a partir de ahora pueden identificar si un programa está en C o en C++. También espero estar publicando mis programas en ambos lenguajes a partir de ahora.