Menu
Coddy logo textTech

Attributs (membres de données)

Fait partie de la section Programmation Orientée Objet du Journey C++ de Coddy. Leçon 9 sur 104.

Les membres de données (attributs) stockent l’état d’un objet. Ils sont généralement déclarés private et accessibles par l’intermédiaire de méthodes publiques getter/setter. C’est ce qu’on appelle l’encapsulation.

Membres de données privés

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

Accesseurs et mutateurs publics

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

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

Setters avec validation

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

Spécificateurs d’accès

class MyClass {
private:    // Accessible uniquement à l'intérieur de la classe
    int secret;

public:     // Accessible de n'importe où
    int getSecret() { return secret; }

protected:  // Accessible dans la classe et les sous-classes
    int shared;
};

Rendre les membres de données private les masque au code extérieur. Les accesseurs renvoient leurs valeurs, tandis que les mutateurs les modifient avec une validation facultative. Cela protège vos données et contrôle la manière dont elles sont accessibles.

challenge icon

Défi

Moyen

Créez une classe BankAccount avec des membres de données privés et des méthodes d’accès publiques :

  • Membres privés : accountName (chaîne), balance (entier)
  • Accesseurs de définition : setAccountName, setBalance
  • Accesseurs de lecture : getAccountName, getBalance
  • deposit(int amount) : ajoute au solde si amount > 0
  • withdraw(int amount) : renvoie "Success" si possible, sinon "Insufficient funds"

Essayez vous-même

#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 iconTestez-vous

Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.

Toutes les leçons de Programmation Orientée Objet

Entraînez-vous par vous-même : Compilateur C++ en ligne