🚀 Introducción a C++

C++ es un lenguaje de programación potente y versátil que combina programación estructurada con programación orientada a objetos. Fue creado por Bjarne Stroustrup como una extensión de C.

🧠 ¿Por qué aprender C++?

  • Alto rendimiento: Ideal para aplicaciones que requieren velocidad y control del hardware.
  • Control de memoria: Permite gestionar directamente la memoria con punteros.
  • Orientado a objetos: Facilita la reutilización y escalabilidad del código.
  • Multiplataforma: Compatible con Windows, Linux, macOS y más.
  • Base sólida: Ayuda a entender otros lenguajes modernos como Java, C# o Rust.

🧱 Estructura básica de un programa en C++

#include <iostream>

int main() {
    std::cout << "¡Hola, mundo!" << std::endl;
    return 0;
}
    

Este programa imprime ¡Hola, mundo! en la consola. Es el clásico punto de partida para aprender cualquier lenguaje.

🧰 Conceptos clave

Concepto Descripción breve
Variables y tipos int, float, char, bool
Control de flujo if, else, while, for
Funciones Reutilización de código
Clases y objetos Programación orientada a objetos
Punteros Acceso directo a memoria
Manejo de archivos Lectura/escritura desde disco
Templates Programación genérica

🧩 Programación Orientada a Objetos en C++

C++ permite estructurar el código en torno a clases y objetos, lo que facilita la reutilización, la encapsulación y la extensión de funcionalidades sin romper lo existente.

🔧 ¿Qué es una clase?

Una clase es como un molde que define las propiedades (atributos) y comportamientos (métodos) de un objeto.

class Persona {
public:
    string nombre;
    int edad;

    void saludar() {
        cout << "Hola, soy " << nombre << " y tengo " << edad << " años." << endl;
    }
};

🧍 Crear un objeto

int main() {
    Persona p1;
    p1.nombre = "Carlos";
    p1.edad = 30;
    p1.saludar(); // Salida: Hola, soy Carlos y tengo 30 años.
    return 0;
}

🛡️ Principios clave de la OOP

Principio Descripción
Encapsulación Oculta detalles internos y expone solo lo necesario.
Herencia Permite que una clase herede atributos y métodos de otra.
Polimorfismo Usa una misma interfaz para diferentes tipos de objetos.
Abstracción Define estructuras generales sin preocuparse por los detalles internos.

🧠 Tip extra: Constructores

Podés usar constructores para inicializar objetos automáticamente:

class Persona {
public:
    string nombre;
    int edad;

    Persona(string n, int e) {
        nombre = n;
        edad = e;
    }

    void saludar() {
        cout << "Hola, soy " << nombre << "." << endl;
    }
};

Y luego crear el objeto así:

Persona p2("Emilio", 28);
p2.saludar();