¡Bienvenido a la Guía de C++

C++ es un lenguaje de programación de propósito general que ha sido fundamental en el desarrollo de sistemas operativos, aplicaciones de alto rendimiento, videojuegos y más. 🖥️ Con C++, puedes escribir código eficiente y tener un control preciso sobre el hardware, además de aprovechar las ventajas de la programación orientada a objetos. ⚙️ ¡Es una habilidad esencial para cualquier desarrollador de software! 💻

Introducción a C++

C++ es un lenguaje de programación orientado a objetos que extiende las capacidades de C. Es ampliamente utilizado en desarrollo de sistemas, videojuegos, aplicaciones de alto rendimiento y más. Aquí tienes un ejemplo básico:

Ejemplo de C++
#include <iostream>

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

Clases y Objetos

En C++, las clases son la base de la programación orientada a objetos. Aquí tienes un ejemplo de cómo definir una clase y crear un objeto:

Ejemplo de Clases y Objetos
#include <iostream>

class Persona {
public:
    std::string nombre;
    int edad;

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

int main() {
    Persona persona1;
    persona1.nombre = "Juan";
    persona1.edad = 25;
    persona1.saludar();

    return 0;
}

Herencia en C++

La herencia permite crear nuevas clases a partir de clases existentes. Aquí tienes un ejemplo de herencia:

Ejemplo de Herencia
#include <iostream>

class Animal {
public:
    void comer() {
        std::cout << "Este animal está comiendo." << std::endl;
    }
};

class Perro : public Animal {
public:
    void ladrar() {
        std::cout << "¡Guau guau!" << std::endl;
    }
};

int main() {
    Perro miPerro;
    miPerro.comer();
    miPerro.ladrar();

    return 0;
}

Polimorfismo en C++

El polimorfismo permite que objetos de diferentes clases sean tratados como objetos de una clase base. Aquí tienes un ejemplo usando funciones virtuales:

Ejemplo de Polimorfismo
#include <iostream>

class Animal {
public:
    virtual void hacerSonido() {
        std::cout << "Este animal hace un sonido." << std::endl;
    }
};

class Perro : public Animal {
public:
    void hacerSonido() override {
        std::cout << "¡Guau guau!" << std::endl;
    }
};

class Gato : public Animal {
public:
    void hacerSonido() override {
        std::cout << "¡Miau miau!" << std::endl;
    }
};

int main() {
    Animal* miAnimal1 = new Perro();
    Animal* miAnimal2 = new Gato();

    miAnimal1->hacerSonido();
    miAnimal2->hacerSonido();

    delete miAnimal1;
    delete miAnimal2;

    return 0;
}

Manejo de Memoria en C++

En C++, puedes manejar memoria dinámica usando new y delete. Aquí tienes un ejemplo:

Ejemplo de Manejo de Memoria
#include <iostream>

int main() {
    int* numero = new int(10);
    std::cout << "Número: " << *numero << std::endl;

    delete numero; // Liberar la memoria

    return 0;
}

STL (Standard Template Library)

La STL es una colección de plantillas de clases y funciones que proporcionan estructuras de datos y algoritmos comunes. Aquí tienes un ejemplo de uso de un vector:

Ejemplo de STL
#include <iostream>
#include <vector>

int main() {
    std::vector<int> numeros = {1, 2, 3, 4, 5};

    for (int i = 0; i < numeros.size(); i++) {
        std::cout << numeros[i] << " ";
    }

    return 0;
}

Ejercicios Prácticos

Aquí tienes algunos ejercicios para practicar tus habilidades en C++:

Ejercicio 1: Clase Punto

Crea una clase Punto que represente un punto en un plano 2D con coordenadas (x, y). Añade un método para calcular la distancia entre dos puntos.

Ejercicio 2: Herencia

Crea una clase base Vehiculo y dos clases derivadas Coche y Moto. Implementa métodos específicos para cada tipo de vehículo.

Ejercicio 3: STL

Usa un std::map para almacenar nombres de personas y sus edades. Luego, imprime el contenido del mapa.