Volver a la página principal
martes 19 noviembre 2024
9

Qué es y cómo usar la encapsulación en C++

La encapsulación es un principio fundamental de la programación orientada a objetos (OOP) que permite proteger los datos y controlar su acceso. En C++, se logra mediante el uso de clases, definiendo los datos como privados (private) y proporcionando métodos públicos (public) para interactuar con ellos. Esto asegura que los datos no sean manipulados directamente, fomentando la seguridad y la modularidad del código.

¿Qué es la encapsulación en C++?

La encapsulación consiste en agrupar datos y métodos en una sola entidad (clase), restringiendo el acceso directo a los datos internos. En C++, puedes utilizar los modificadores de acceso private, protected y public para definir qué elementos son accesibles desde fuera de la clase.

Ventajas de la encapsulación

1. Seguridad de los datos: Protege los datos sensibles de modificaciones no deseadas.

2. Modularidad: Permite actualizar y mantener el código de forma más eficiente.

3. Control: Define cómo interactúan otras partes del programa con los datos internos.

Ejemplo básico de encapsulación en C++

#include <iostream>
#include <string>

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

public:
    // Setter para asignar valores
    void setDatos(const std::string& nuevoNombre, int nuevaEdad) {
        nombre = nuevoNombre;
        edad = nuevaEdad;
    }

    // Getter para obtener valores
    void mostrarDatos() const {
        std::cout << "Nombre: " << nombre << "\nEdad: " << edad << std::endl;
    }
};

int main() {
    Persona persona1;
    persona1.setDatos("Juan", 25);
    persona1.mostrarDatos();
    return 0;
}

Explicación del ejemplo

  • private: Las variables nombre y edad no pueden ser accedidas directamente fuera de la clase.
  • Métodos públicos: Los métodos setDatos y mostrarDatos permiten modificar y leer los valores, respectivamente.

Modificadores de acceso en C++

Modificador Descripción
private Los miembros solo son accesibles dentro de la misma clase.
protected Los miembros son accesibles dentro de la clase y las clases derivadas.
public Los miembros son accesibles desde cualquier parte del programa.

Más ejemplos de encapsulación

Uso de métodos para validar datos

class CuentaBancaria {
private:
    double saldo;

public:
    CuentaBancaria() : saldo(0) {}

    void depositar(double cantidad) {
        if (cantidad > 0) {
            saldo += cantidad;
        } else {
            std::cout << "Cantidad inválida.\n";
        }
    }

    void mostrarSaldo() const {
        std::cout << "Saldo: " << saldo << std::endl;
    }
};

Restricción de acceso mediante protected

class Base {
protected:
    int valorProtegido;
};

class Derivada : public Base {
public:
    void setValor(int valor) {
        valorProtegido = valor;
    }
};

Referencia oficial

Para más información sobre encapsulación en C++, puedes visitar la documentación oficial de C++.

Etiquetas:
cpp
Compartir:
Creado por:
Author photo

Jorge García

Fullstack developer