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
1
2
3
4
5
6
7
#include<stdio.h>
int main()
{
printf ("Hola Mundo");
return 0;
}
En C++
1
2
3
4
5
6
7
8
9
#include<iostream>
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
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include<stdio.h>
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++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include<iostream>
using namespace std;
int main()
{
int radio;
float area, perimetro;
// SALIDA: mensaje un pantalla
cout << "Introduce el radio del circulo: ";
//ENTRADA: recibir dato desde teclado
cin >> 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.