Category Archives: Artículos

Diferencias entre C y C++

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.

Advertisements

Bajar Dev-C++ gratis (compilador para C++)

dev c++ logo
Ya les proporcioné antes un enlace para bajar Borland C++ 6.0, pero no hay nada como lo legal, y Bloodshed Dev C++ lo puedes descargar de forma totalmente gratuita (y legal) desde su propia página, o para ahorrarles clics, desde SourceForge: Dev-C++.

Es un software excelente, muy actual, con una buena interfaz y funciona a la perfección. El único problema es que no podremos usar la librería <conio.h> (porque es propiedad de Borland) a menos que sigamos las siguientes instrucciones: conio en Dev-C++.

Ya por último les pongo la captura de pantalla de Dev-C++ con lo básico que debrían de saber:

pantalla dev c++

¿Porqué programar en C++?

logo de c++
De seguro mas uno te ha dicho:  “¿C++?, eso ya está obsoleto”, pero la realidad es muy distinta.

Imagínense que programar es como escribir. En un lenguaje de alto nivel (visual) tienes todas las palabras del mundo pre-escritas, listas para que las agarres y las uses. En un lenguaje de nivel medio (como c++), tienes todas las letras del alfabeto listas para que formes la palabra que quieras. En un lenguaje de bajo nivel (ensamblador) tendrías tu mismo que ‘hacer’ cada letra.

Cada uno tiene sus ventajas, pero la verdad es que para empezar a aprender a programar, C++ es perfecto.

Y si todavía tienes dudas, acuérdate que sistemas operativos como Linux, Unix e incluso Windows (anteriormente), se escriben casi por completo en C.