¿Cómo surgió el lenguaje C++, en qué se diferencia de otros y cómo empezar a aprenderlo?

Analizamos para quién y para qué es adecuado C++, cuáles son las herramientas más demandadas para trabajar con él. Instalamos y configuramos las herramientas básicas, y también intentamos escribir y ejecutar un programa simple. Al final del artículo, hay una lista de recursos útiles para principiantes que te ayudarán a comprender si el lenguaje es adecuado para ti.

¿Quién creó C++?

Bill Gates comenzó a programar en sus años escolares, estudiando en una escuela privilegiada. Mark Zuckerberg, a los diez años, recibió un ordenador como regalo y comenzó a aprender programación.

El comienzo del creador del lenguaje C++, Bjarne Stroustrup, no fue brillante. Sus padres eran pobres. Estudió en la peor escuela de la ciudad. No sabía en qué área desarrollarse. Stroustrup alguna vez confesó que llegó a un curso de informática en la universidad por error, confundiéndolo con matemáticas. El error se convirtió en una gran suerte tanto para el mismo Bjarne como para muchos programadores de todo el mundo.

En los años 80, Stroustrup necesitó escribir un programa de simulación de cálculos distribuidos para la empresa Bell Labs. Para entonces, había estudiado más de veinte lenguajes de programación, pero ninguno era adecuado para la tarea.

Entonces decidió desarrollar un lenguaje orientado a objetos basado en la sintaxis de C. En 1985, presentó su desarrollo en el libro «Lenguaje de programación C++«.

¿En qué se diferencia C++ de otros lenguajes?

C++ se utiliza en fintech, desarrollo de juegos, para crear programas de diversa complejidad: desde utilidades simples hasta sistemas a gran escala. C++ no se puede considerar un lenguaje para principiantes, en simplicidad es inferior al popular Python. Sin embargo, C++ tiene características que lo hacen más flexible.

Grandes posibilidades y gran responsabilidad. Muchos lenguajes modernos, como C#, Java, Ruby, proporcionan gestión de memoria y comprobaciones de seguridad sin la participación del programador, a nivel de compilador. Pero Stroustrup considera esto no una ventaja, sino una vulnerabilidad de la que sufren tanto la seguridad como el rendimiento. En C++, todo lo controla el autor del programa.

Orientación a objetos. El concepto de POO se implementó en Simula67. Pero el enfoque se hizo realmente popular gracias a los trabajos de Stroustrup.

Universalidad y flexibilidad. C++ se desarrolló como un lenguaje para una amplia gama de tareas, desde la programación de microcontroladores hasta sistemas de cualquier complejidad. Stroustrup supuso que el desarrollo requeriría numerosas bibliotecas con las clases y funciones necesarias.

Conceptos básicos de la sintaxis de C++

Un programa consta de instrucciones. Una instrucción (statement) realiza alguna acción. Después de la instrucción en C++, se coloca el signo «;».

Por ejemplo:

std::cout << "mi texto";

Varias instrucciones, encerradas entre llaves, constituyen un bloque de código:

{                          
    std::cout << "mi texto";    
    std::cout << "más texto";                       
}

Aquí, cout es la salida estándar. En C++ no hay herramientas de entrada/salida preparadas, para esto se utiliza la biblioteca orientada a objetos iostream.

Para que el compilador conecte la biblioteca, se requiere una directiva:

#include <iostream>

Iostream define tres flujos estándar:

  • cin — flujo de entrada (stdin en C);
  • cout — flujo de salida (stdout en C);
  • cerr — flujo de salida de mensajes de error (stderr en C).

Se encuentran en el espacio de nombres (namespace) std. Para usarlos sin el prefijo std::, puedes aplicar previamente la instrucción:

using namespace std;

Para la entrada/salida, se han redefinido dos operaciones:

  • >> — obtener del flujo de entrada;
  • << — colocar en el flujo de salida.

La salida a la consola se ve así:

using namespace std;
cout << valor;                        

Valor son datos de un tipo determinado. El tipo de datos determina qué operaciones se pueden realizar con ellos y cuántos bytes de memoria ocupan.

Los principales tipos de datos en C++:

  • int — tipo de datos entero;
  • float — tipo de datos de punto flotante;
  • double — tipo de datos de punto flotante de doble precisión;
  • char — tipo de datos de carácter;
  • bool — tipo de datos booleano

Probemos a escribir «¡Hola, mundo!«. Un programa en C++ incluye necesariamente la función main. Con ella comienza el trabajo del programa. El cuerpo de la función es un bloque de código. Después del nombre, entre paréntesis, se encuentra la lista de parámetros. Si no se necesitan parámetros, los paréntesis están vacíos. La función devuelve un valor de un tipo determinado.

Así se ve el encabezado de la función main sin parámetros, que devuelve un entero:

int main()

Al final del cuerpo de la función, se necesita el operador return y el valor devuelto. Normalmente, 0 es un signo de finalización exitosa.

return 0;

Así se ve el programa de salida del mensaje «¡Hola, mundo!»:

#include <iostream>              
using namespace std;
int main()                          
{                          
    cout << "Hola mundo!";    
    return 0;                      
}

Lo que necesitas para programar en C++

Ejecución online

Puedes buscar en Google «Compiladores online para C++» y elegir cualquiera. Pero muchos requieren registro, configuración, etc.

Este enlace te llevará directamente a la página correcta. En la ventana de la derecha ya verás un ejemplo de código que muestra un saludo al mundo:

Captura de pantalla de un compilador C++ online, mostrando el código "Hello World"
Programación sencilla con nuestro compilador C++ online.

Pulsa el botón «Ejecutar» — el verde con una flecha en la parte superior izquierda. En la parte inferior de la pantalla verás el resultado — el mensaje «¡Hola, mundo!» («Hello World» para este ejemplo).

Trabajo con C++ en un ordenador local

Instalamos y comprobamos el compilador

Según una encuesta de Jetbrains, el conjunto más popular de compiladores para diferentes sistemas operativos es GCC con el compilador g++ para el lenguaje C++.

Usaremos el paquete de herramientas de desarrollo MSYS2, que incluye GCC. Descargamos y ejecutamos msys2-x86_64-20241208.exe.

Puedes dejar el directorio de instalación predeterminado C:\msys64.
Seleccionamos los marcadores para el menú Inicio, y el paquete se instala. Cuando finalice la instalación, se iniciará la consola MSYS2.exe, si se seleccionó esa opción. Puedes iniciar usrt_64.exe desde la carpeta del directorio especificado durante la instalación.

Para instalar el conjunto de compiladores GCC, escribimos en la consola el comando pacman -S mingw-w64-x86_64-gcc.

El gestor de paquetes comenzará a instalar el paquete de compiladores. No olvides responder Y a la solicitud:

Es recomendable instalar inmediatamente el depurador. Para ello, escribimos en la consola MSYS2 el comando pacman -S mingw-w64-x86_64-gdb y también respondemos Y.

Ahora, en el directorio C:\msys64\ucrt64\bin hay un archivo de compilador g++.exe. Agregamos la ruta a él en las Variables de entorno. En la ventana de búsqueda de Windows, escribimos «cambiar variables de entorno».

Modificamos la variable Path: agregamos la ruta C:\msys64\ucrt64\bin. Ahora podremos compilar y ejecutar el programa en C++. Creamos un archivo hello.cpp con el texto de nuestro programa de la sección anterior en cualquier editor de texto:

#include <iostream>              
using namespace std;
int main()                          
{                          
    cout << "Hola mundo";    
    return 0;                      
}

Lo colocamos en la carpeta C:\HELLO_CPP.

Queda por compilar. Abrimos la línea de comandos de Windows. Para ello, puedes escribir el texto «línea de comandos» en la ventana de búsqueda de Windows. Vamos a la carpeta necesaria usando el comando cd C:\HELLO_CPP y ejecutamos la compilación g++ hello.cpp -o hello.

En el primer parámetro se indica el archivo con el código que hay que compilar. Hemos obtenido una aplicación lista, podemos ejecutarla. Escribimos hello.

¡El programa funcionará!

Te recomendamos: Lista de Compiladores Gratuitos para C/C++

Elegimos un entorno para el desarrollo en C++

Por supuesto, escribir todo el código en un editor de texto normal y compilarlo y ejecutarlo manualmente no es conveniente. Se necesitará un software especial para el desarrollo.

La disputa entre los partidarios de los editores de código y los IDE no está resuelta. El uso de un editor se corresponde más con la filosofía de C++, donde todo lo controla el programador. También existe la opinión de que el editor es más adecuado para la enseñanza, permite comprender los detalles.

Al mismo tiempo, la necesidad de trabajar con muchas bibliotecas y frameworks, el trabajo en equipo y muchas otras razones llevan a utilizar potentes IDE.

Según una encuesta de Jetbrains de 2022, entre las herramientas de desarrollo de C++, el editor de código Visual Studio Code (VS Code) y el IDE Visual Studio de Microsoft lideran con seguridad. Para empezar a aprender, VS Code es adecuado.

Gráfico que muestra el porcentaje de uso de diferentes compiladores C++, con GCC liderando con un 67%.
Los compiladores C++ más populares entre los desarrolladores.

Configuramos Visual Studio Code para C++

Te contamos cómo descargar e instalar Visual Studio Code en este enlace. Durante la instalación, selecciona el instalador del sistema de 64 bits.

Ahora hay que configurar VS Code para trabajar con el compilador y el depurador para C++, que instalamos en la etapa anterior.

Primero, instala la extensión para trabajar con C++. Haz clic en el icono «Extensiones» a la izquierda y en la barra de búsqueda de complementos escribe C++. Asegúrate de que el complemento con la descripción «C/C++ IntelliSense, debugging, and code browsing» esté instalado, o instálalo haciendo clic en «Instalar«.

Captura de pantalla de la extensión C/C++ de Microsoft en la tienda de extensiones de Visual Studio Code.
Añade soporte para C++ a tu Visual Studio Code.

Cierra el programa VS Code e inícialo desde la línea de comandos con el comando code ... Asegúrate de que en la carpeta actual se haya creado un directorio con la configuración .vscode.

Ahora hay que crear un directorio .vscode en la carpeta C:\HELLO_CPP con el código fuente en el que comprobamos el compilador. En el directorio, creamos archivos de configuración en formato JSON. Es conveniente utilizar VS Code como editor.

El archivo tasks.json se encarga de que funcione la combinación de teclas Ctrl+shift+B para compilar el programa. Asegúrate de que se indique la ruta correcta al compilador g++.exe, que instalamos con el paquete MSYS2:

{
    "version": "2.0.0",
    "tasks": [
        {
            "type": "shell",
            "label": "g++.exe build active file",
            "command": "C:/msys64/mingw64/bin/g++.exe",
            "args": [
                "-std=c++17",
                "-g",
                "${file}",
                "-o",
                "${fileDirname}\\${fileBasenameNoExtension}.exe"
            ],
            "options": {
                "cwd": "C:\\msys64\\mingw64\\bin"
            },
            "problemMatcher": [
                "$gcc"
            ],
            "group": "build"
        },
        {
            "type": "cppbuild",
            "label": "C/C++: g++.exe build active file",
            "command": "C:\\msys64\\mingw64\\bin\\g++.exe",
            "args": [
                "-fdiagnostics-color=always",
                "-g",
                "${file}",
                "-o",
                "${fileDirname}\\${fileBasenameNoExtension}.exe"
            ],
            "options": {
                "cwd": "C:\\msys64\\mingw64\\bin"
            },
            "problemMatcher": [
                "$gcc"
            ],
            "group": {
                "kind": "build",
                "isDefault": true
            },
            "detail": "Task generated by Debugger."
        }
    ]
}

El archivo launch.json se encarga del funcionamiento del depurador. Comprueba la exactitud de la ruta al depurador gdb.exe:

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "g++.exe build and debug active file",
            "type": "cppdbg",
            "request": "launch",
            "program": "${fileDirname}\\${fileBasenameNoExtension}.exe",
            "args": [],
            "stopAtEntry": false,
            "cwd": "${workspaceFolder}",
            "environment": [],
            "externalConsole": false,
            "MIMode": "gdb",
            "miDebuggerPath": "C:\\msys64\\mingw64\\bin\\gdb.exe",
            "setupCommands": [
                {
                    "description": "Enable pretty-printing for gdb",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ],
            "preLaunchTask": "g++.exe build active file",
            "internalConsoleOptions": "neverOpen"
        }
    ]
}

El archivo c_cpp_properties.json se encarga de la ubicación de los archivos include. También comprueba la exactitud de la ruta:

{
    "configurations": [
        {
            "name": "Win32",
            "includePath": [
                "${workspaceFolder}/**",
                "C:/msys64/mingw64/include/**"
            ],
            "defines": [
                "_DEBUG",
                "UNICODE",
                "_UNICODE"
            ],
            "windowsSdkVersion": "8.1",
            "compilerPath": "C:\\msys64\\mingw64\\bin\\g++.exe",
            "cStandard": "c11",
            "cppStandard": "c++17",
            "intelliSenseMode": "gcc-x86"
        }
    ],
    "version": 4
}

Intentamos ejecutar el código creado anteriormente de hello.cpp. Abrimos el archivo. Desplegamos la lista junto a la flecha de la parte superior derecha y seleccionamos el modo de ejecución sin depuración — Ejecutar archivo C/C++.

Seleccionamos el modo de depuración Depurar archivo C/C++, pulsamos en el icono de depuración de la izquierda, para activar el panel de depuración, y lo ejecutamos de nuevo. Excelente, el depurador también funciona.

Recursos para aprender C++

En Internet hay muchos recursos para aprender por tu cuenta los fundamentos de C++.

Curso C++ de Programar Ya: Una guía más detallada sobre el lenguaje C++ hay información sobre los fundamentos de la sintaxis, punteros, funciones, trabajo con cadenas, algoritmos y contenedores.

Documentación de C++: Documentación completa de Microsoft.

Si quieres entenderlo en detalle y empezar desde los fundamentos, lee los libros del autor del lenguaje Bjarne Stroustrup:

Si después de los cursos gratuitos te gusta el lenguaje, te apetece programar en él, puedes inscribirte en cursos comerciales. Bajo la guía de mentores y con un horario claro, recorrerás el camino de cero a especialista en C++.

Categorizado en:

C,