Menu
Coddy logo textTech

Atributos (Miembros de datos)

Parte de la sección Programación Orientada a Objetos del Journey de C++ de Coddy. Lección 9 de 104.

Los miembros de datos (atributos) almacenan el estado de un objeto. Normalmente se declaran como private y se accede a ellos mediante métodos públicos getter/setter. Esto se denomina encapsulación.

Miembros de datos privados

class BankAccount {
private:
    std::string accountName;
    int balance;
};

Getters y setters públicos

class BankAccount {
private:
    std::string accountName;
    int balance;

public:
    void setBalance(int balance) {
        this->balance = balance;
    }
    
    int getBalance() {
        return this->balance;
    }
};

Setters con validación

void BankAccount::setBalance(int balance) {
    if (balance >= 0) {
        this->balance = balance;
    }
}

Especificadores de acceso

class MyClass {
private:    // Solo accesible dentro de la clase
    int secret;

public:     // Accesible desde cualquier lugar
    int getSecret() { return secret; }

protected:  // Accesible en la clase y las subclases
    int shared;
};

Hacer que los miembros de datos sean private los oculta del código externo. Los getters devuelven sus valores y los setters los modifican con una validación opcional. Esto protege tus datos y controla cómo se accede a ellos.

challenge icon

Desafío

Intermedio

Crea una clase BankAccount con miembros de datos privados y métodos de acceso públicos:

  • Miembros privados: accountName (cadena), balance (entero)
  • Métodos setter: setAccountName, setBalance
  • Métodos getter: getAccountName, getBalance
  • deposit(int amount): suma al saldo si amount > 0
  • withdraw(int amount): devuelve "Success" si es posible; de lo contrario, "Insufficient funds"

Pruébalo tú mismo

#include <iostream>
#include "BankAccount.h"

int main() {
    std::string name;
    int initial, depositAmt;
    std::getline(std::cin, name);
    std::cin >> initial >> depositAmt;
    
    BankAccount account;
    account.setAccountName(name);
    account.setBalance(initial);
    
    std::cout << "Account: " << account.getAccountName() << std::endl;
    std::cout << "Balance: " << account.getBalance() << std::endl;
    
    account.deposit(depositAmt);
    std::cout << "After deposit: " << account.getBalance() << std::endl;
    
    std::string result = account.withdraw(2000);
    std::cout << "Withdraw 2000: " << result << std::endl;
    std::cout << "Final Balance: " << account.getBalance() << std::endl;
    return 0;
}
quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Programación Orientada a Objetos

Practica por tu cuenta: Compilador de C++ online