=============================================================================
===
C++ - ESENCIALES BÁSICOS
=============================================================================
===
¿Qué es C++?
C++ es un lenguaje de programación de alto nivel, compilado, de tipado estático y fuerte. Fue
creado por Bjarne Stroustrup en 1985 como una extensión del lenguaje C. Es conocido por su
alto rendimiento y control sobre el hardware.
Características principales:
- Compilado (no interpretado)
- Manejo manual de memoria (punteros, new/delete)
- Soporta programación orientada a objetos (clases, herencia, polimorfismo)
- Soporta programación genérica (plantillas/templates)
- Muy eficiente para sistemas, videojuegos y aplicaciones de tiempo real
Usos típicos:
- Videojuegos (Unreal Engine)
- Sistemas operativos
- Motores de bases de datos
- Aplicaciones de alto rendimiento
=============================================================================
===
SINTAXIS BÁSICA Y VARIABLES
Estructura mínima de un programa:
#include <iostream>
using namespace std;
int main() {
cout << "Hola mundo" << endl;
return 0;
Comentarios:
// Comentario de una línea
/* Comentario
de múltiples líneas */
Variables (deben declarar tipo):
string nombre = "Ana"; // Nota: requiere #include <string>
int edad = 25; // entero
double altura = 1.65; // decimal de doble precisión
bool activo = true; // booleano
Tipos de datos básicos:
int -> números enteros (4 bytes): 10, -3, 0
double -> decimales (8 bytes): 3.14, -0.5
float -> decimales de menor precisión (4 bytes): 3.14f
char -> un solo carácter (1 byte): 'A', 'b'
bool -> true o false (1 byte)
string -> cadena de texto, requiere #include <string>
Tamaños aproximados (dependen del sistema):
cout << sizeof(int) << endl; // normalmente 4
cout << sizeof(double) << endl; // normalmente 8
Entrada y salida por consola:
#include <iostream>
#include <string>
using namespace std;
int main() {
string nombre;
int edad;
cout << "¿Cómo te llamas? ";
getline(cin, nombre); // Lee línea completa
cout << "¿Cuántos años tienes? ";
cin >> edad; // Lee número
cout << "Hola " << nombre << ", tienes " << edad << " años" << endl;
return 0;
=============================================================================
===
ESTRUCTURAS DE CONTROL
Condicional if / else if / else:
int edad = 18;
if (edad < 12) {
cout << "Niño" << endl;
} else if (edad < 18) {
cout << "Adolescente" << endl;
} else {
cout << "Adulto" << endl;
}
Switch:
int dia = 3;
switch(dia) {
case 1:
cout << "Lunes" << endl;
break;
case 2:
cout << "Martes" << endl;
break;
case 3:
cout << "Miércoles" << endl;
break;
default:
cout << "Día inválido" << endl;
Operador ternario:
int edad = 20;
string mensaje = (edad >= 18) ? "Mayor de edad" : "Menor de edad";
cout << mensaje << endl;
Bucle for clásico:
for (int i = 0; i < 5; i++) {
cout << i << endl; // 0,1,2,3,4
Bucle for con rango (C++11):
int numeros[] = {1, 2, 3, 4, 5};
for (int num : numeros) {
cout << num << endl;
Bucle while:
int contador = 0;
while (contador < 3) {
cout << contador << endl;
contador++;
Bucle do-while (ejecuta al menos una vez):
int x = 10;
do {
cout << "Se ejecuta una vez" << endl;
} while (x < 5);
break y continue:
for (int i = 0; i < 5; i++) {
if (i == 2) continue; // Salta el 2
if (i == 4) break; // Termina en 4
cout << i << endl; // 0,1,3
=============================================================================
===
ARRAYS Y VECTORES
Arrays estáticos (tamaño fijo en tiempo de compilación):
// Declaración
int numeros[5]; // {? , ? , ? , ? , ?}
int valores[3] = {10, 20, 30};
string nombres[] = {"Ana", "Luis", "Carlos"};
// Acceso por índice
cout << nombres[0] << endl; // Ana
// Modificar
nombres[0] = "Maria";
// Recorrer
for (int i = 0; i < 3; i++) {
cout << nombres[i] << endl;
// Tamaño calculado
int tamano = sizeof(nombres) / sizeof(nombres[0]);
Array dinámico (con punteros, memoria manual):
int* miArray = new int[5]; // Asigna memoria
miArray[0] = 10;
delete[] miArray; // Libera memoria (¡importante!)
Vector (tamaño dinámico, recomendado):
#include <vector>
vector<string> frutas;
frutas.push_back("manzana");
frutas.push_back("pera");
frutas.push_back("plátano");
cout << frutas[0] << endl; // manzana
cout << [Link]() << endl; // 3
frutas.pop_back(); // Elimina el último
// Recorrer vector
for (int i = 0; i < [Link](); i++) {
cout << frutas[i] << endl;
// Recorrer con for rango (C++11)
for (string fruta : frutas) {
cout << fruta << endl;
=============================================================================
===
FUNCIONES Y PUNTEROS
Funciones básicas:
#include <iostream>
using namespace std;
// Declaración (prototipo)
int sumar(int a, int b);
void saludar(string nombre);
int main() {
cout << sumar(3, 5) << endl; // 8
saludar("Ana"); // Hola Ana
return 0;
}
// Definición
int sumar(int a, int b) {
return a + b;
void saludar(string nombre) {
cout << "Hola " << nombre << endl;
Parámetros por valor vs por referencia:
// Por valor (copia, no modifica original)
void duplicarValor(int x) {
x = x * 2;
// Por referencia (modifica original)
void duplicarReferencia(int &x) {
x = x * 2;
int main() {
int a = 5;
duplicarValor(a);
cout << a << endl; // 5 (no cambió)
duplicarReferencia(a);
cout << a << endl; // 10 (cambió)
Parámetros por defecto:
void saludar(string nombre = "Invitado") {
cout << "Hola " << nombre << endl;
saludar(); // Hola Invitado
saludar("Ana"); // Hola Ana
Punteros básicos (guardan direcciones de memoria):
int numero = 42;
int* puntero = № // puntero guarda la dirección de 'numero'
cout << numero << endl; // 42 (el valor)
cout << &numero << endl; // dirección de memoria
cout << puntero << endl; // misma dirección
cout << *puntero << endl; // 42 (el valor al que apunta)
// Modificar a través del puntero
*puntero = 100;
cout << numero << endl; // 100
Ejemplo práctico (factorial):
int factorial(int n) {
int resultado = 1;
for (int i = 1; i <= n; i++) {
resultado *= i;
return resultado;
cout << factorial(5) << endl; // 120
=============================================================================
===
FIN DEL DOCUMENTO C++
=============================================================================
===