Menu

¿Qué es C++? El lenguaje, su velocidad y dónde se ejecuta

Qué es realmente C++, por qué se compila directamente a código máquina nativo y los tipos de software de alto rendimiento que se construyen con él.

Esta página incluye editores ejecutables: edita, ejecuta y ve el resultado al instante.

C++ en una frase

C++ es un lenguaje de programación de tipado estático y compilado que convierte tu código fuente directamente en código máquina nativo. Esa única decisión de diseño -sin intérprete, sin máquina virtual entre tu programa y la CPU- es la razón por la que C++ es uno de los lenguajes más rápidos que puedes escribir, y por la que impulsa el software que sencillamente no puede ser lento.

Aquí está el obligatorio primer programa. Ejecútalo aquí mismo:

Aquí hay más estructura que en un lenguaje de scripting, y es a propósito: C++ te da un control preciso a cambio de ser explícito. Iremos desglosando cada pieza de esto a lo largo de las próximas páginas.

Por qué C++ es rápido

La mayoría de los lenguajes de scripting ejecutan tu código a través de un intérprete o una máquina virtual que lee y ejecuta instrucciones en tiempo de ejecución. C++ se salta todo eso:

  1. Un compilador (como g++ o clang++) lee tu código fuente .cpp y lo traduce en instrucciones máquina para un procesador y un sistema operativo concretos.
  2. El resultado es un ejecutable independiente que la CPU ejecuta directamente: nada se interpone entre tu código y el hardware.

Como no hay ninguna traducción ocurriendo mientras el programa se ejecuta, los programas de C++ arrancan al instante y corren a la velocidad máxima del procesador. También obtienes un control preciso sobre la memoria y el hardware que los lenguajes de más alto nivel te ocultan deliberadamente.

La contrapartida: ese código máquina está construido para una sola plataforma. Un ejecutable compilado en Windows no funcionará en un Mac; recompilas el código fuente para cada destino. (Compáralo con Java, que compila a bytecode portable que se ejecuta en cualquier JVM.)

Tipado estático y multiparadigma

Dos propiedades dan forma a cómo se ve y se siente el código C++.

Tipado estático significa que cada variable tiene un tipo conocido en tiempo de compilación, y el compilador comprueba tus tipos antes de que el programa siquiera se ejecute:

count es un int durante toda su vida; intentar almacenar "hello" en él no compilaría. Esto detecta toda una clase de errores de forma temprana, a costa de tener que escribir más al principio.

Multiparadigma significa que C++ no te obliga a usar un único estilo. Puedes escribir código procedimental simple, organizar la lógica en clases (orientado a objetos) o usar plantillas para código genérico y reutilizable. La mayoría de los programas reales mezclan los tres. Esta flexibilidad es potente, pero también significa que C++ tiene una gran superficie que aprender: lo abordaremos un concepto a la vez.

Para qué se usa C++

C++ aparece allí donde el rendimiento y el control son innegociables:

  • Motores de juegos: Unreal Engine, el núcleo de Unity y la mayor parte del código de los juegos AAA.
  • Software de sistemas: sistemas operativos, controladores de dispositivos y navegadores como Chrome y Firefox.
  • Servicios de alto rendimiento: bases de datos, sistemas de trading e infraestructura de búsqueda donde cuentan los microsegundos.
  • Embebidos y hardware: firmware para coches, drones, dispositivos médicos y IoT.

Si un software tiene que ser rápido, caber en una memoria reducida o hablar directamente con el hardware, hay muchas probabilidades de que esté escrito en C++.

C++ no es C (pero empezó ahí)

C++ surgió de C en los años 80 como "C con clases", y sigue siendo en su mayoría un superconjunto: mucho código C válido compila como C++. Pero el lenguaje ha crecido enormemente desde entonces.

C++ añade programación orientada a objetos, plantillas para código genérico, referencias, excepciones y una rica biblioteca estándar llena de herramientas listas para usar. Este fragmento usa una de ellas, vector: un arreglo redimensionable que gestiona su propia memoria, algo que tendrías que construir a mano en C:

El C++ moderno (los estándares C++11, C++17 y C++20) se apoya mucho en herramientas como estas para hacer el lenguaje más seguro y expresivo que sus raíces en C. Un error común de principiante es escribir C++ al estilo de C -memoria manual, arreglos crudos por todas partes- cuando la biblioteca estándar ya resuelve el problema por ti. A lo largo de estos documentos favoreceremos el estilo moderno.

Siguiente: Instalar C++

Para escribir y ejecutar C++ en tu propia máquina necesitas un compilador, normalmente g++ (parte de GCC), clang++ o la cadena de herramientas MSVC en Windows. La siguiente página te guía a través de la instalación de uno y la confirmación de que funciona desde tu terminal.

Preguntas frecuentes

¿Para qué se usa C++?

C++ impulsa software donde la velocidad y el control son importantes: motores de juegos (Unreal, el núcleo de Unity), sistemas operativos, navegadores (Chrome, Firefox), bases de datos, sistemas de trading y dispositivos embebidos. Su fortaleza es ejecutarse cerca del hardware sin renunciar a características de alto nivel como clases, plantillas y la biblioteca estándar.

¿C++ es compilado o interpretado?

C++ es compilado. Un compilador como g++ o clang++ traduce tu código fuente directamente a código máquina nativo para una CPU y un sistema operativo concretos, produciendo un ejecutable independiente. No hay ningún intérprete ni máquina virtual entre tu programa y el procesador, y por eso C++ es tan rápido.

¿Cuál es la diferencia entre C y C++?

C++ empezó como "C con clases" y es en su mayoría un superconjunto de C, por lo que la mayoría del código C compila como C++. Las grandes incorporaciones son la programación orientada a objetos (clases y herencia), las plantillas, la biblioteca estándar (contenedores como vector y map), las referencias, las excepciones y muchas funciones de seguridad y comodidad que C no tiene.

Coddy programming languages illustration

Aprende a programar con Coddy

COMENZAR