Sei sulla pagina 1di 3

Diferencias entre C y C++

Guardado en: Artculos el 21 de septiembre del 2011

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 evolucin del anterior lenguaje B, a su vez basado en BCPL. C++, por su parte, fue creado a mediados de los aos 1980 por Bjarne Stroustrup. La intencin de su creacin fue el extender al exitoso lenguaje de programacin C con mecanismos que permitan la manipulacin de objetos. As que C es el lenguaje original, mientras que C++ es una ampliacin de C, por eso el ++. A mi cuando me ensearon a programar me dijeron que iba a aprender a programar en C++, pero en verdad me ensearon 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 3int main() 4{ 5 printf ("Hola Mundo"); 6 return 0; 7}

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

Para el tipo de programas que se estarn mostrando en este blog la diferencia ms 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 3int main() 4{ 5 int radio; 6 float area, perimetro; 7 8 // SALIDA: mensaje un pantalla 9 printf("Introduce el radio del circulo: ");

10 11 12 13 14 15 16 17 18 19 20 21 22 23}

//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#include<iostream> 2using namespace std; 3 4int 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}

Lo que not al hacer estos dos programitas es que pedir un dato en C++ es mucho mucho ms simple que en C. Sin embargo, el asunto de los << y >> puede llegar a asustar a los recin iniciados en la programacin. 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.

Libreras en C++
Por simple convencin las libreras en C terminan en .h (punto hache). Todas las libreras de C sirven para C++, sin embargo, tambin por convencin, se elimina la terminacin .h y mejor se agrega c al principio. Libreria en C math.h string.h time.h etcetera. Librera en C++ cmath cstring ctime

El namespace
C como lenguaje tiene un conjunto de palabras reservadas, como por ejemplo: if, for, while, int, float, C++ es una ampliacin, por lo tanto tiene que agregar nuevas palabras reservadas. stas palabras reservadas estn en un namespace (espacio de nombres). En especfico cout y cin estn el namespace std (standard). Si no declararamos que vamos a usar el namespace std (using namespace std;), cada vez que quisieramos usar cout, tendramos que escribir std::cout. Espero que a partir de ahora pueden identificar si un programa est en C o en C++. Tambin espero estar publicando mis programas en ambos lenguajes a partir de ahora.