Le pointeur this et l’encapsulation
Utiliser le pointeur this et appliquer l’encapsulation avec les accès private et public
Le pointeur this et l’encapsulation est une leçon C++ Academy gratuite sur CoddyKit. Ceci est la leçon 4 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage C++ Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours C++ Academy comprend 4 leçons au total.
Qu'est-ce que this ?
Dans une fonction membre non statique, this est un pointeur implicite vers l'objet courant. Utilisez-le pour lever les ambiguïtés ou pour renvoyer des références.
class Counter {
int n_ = 0;
public:
Counter& add(int x) {
n_ += x; // implicit this
return *this; // chain calls
}
};Accès implicite
Vous n'avez généralement pas besoin d'écrire this->. Les noms des membres sont recherchés automatiquement : this->n_ et n_ sont équivalents.
Quand this-> est requis
Utilisez this-> lorsqu'un paramètre masque un membre ou lorsque la recherche dans un modèle doit être aidée pour trouver des membres hérités.
class Person {
std::string name_;
public:
void setName(const std::string& name) {
this->name_ = name; // or name_ = name;
}
};Renvoyer *this pour l'enchaînement
Renvoyez *this pour prendre en charge les interfaces fluides.
class StringBuilder {
std::string s_;
public:
StringBuilder& append(const std::string& part) {
s_ += part;
return *this;
}
};
StringBuilder sb;
sb.append("Hello, ").append("World!");this dans les méthodes const
Dans une méthode const, this est de type const ClassName*. Vous ne pouvez pas modifier les membres par son intermédiaire.
Encapsulation : l'idée essentielle
L'encapsulation consiste à masquer l'état interne et à n'exposer que des opérations sûres. Rendez les données privées et exposez des méthodes publiques clairement définies.
class Stack {
std::vector<int> data_; // hidden
public:
void push(int v) { data_.push_back(v); }
int pop() { int v = data_.back(); data_.pop_back(); return v; }
bool empty() const { return data_.empty(); }
};Pourquoi encapsuler ?
L'encapsulation vous permet de :
- Modifier la représentation interne sans interrompre les appelants
- Garantir les invariants en un seul endroit
- Valider les entrées à la frontière
- Raisonner localement sur l'état de l'objet
Interface publique = contrat
L'interface publique est une promesse faite aux appelants. Gardez-la minimale, intentionnelle et stable. Rendez les détails d'implémentation privés.
Accesseurs et mutateurs
C'est un modèle courant, mais facile à utiliser à outrance. Évitez de reproduire chaque membre avec un accesseur et un mutateur : cela annule l'encapsulation. Exposez des opérations, pas des champs.
La correction const, encore une fois
Déclarez const toute méthode en lecture seule. Les appelants savent ainsi quelles méthodes peuvent être appelées en toute sécurité sur des instances const, et le compilateur l'impose.
Fonctions et classes amies
Le mot-clé friend accorde à une autre fonction ou classe l'accès aux membres privés. Utilisez-le avec parcimonie : il renforce le couplage.
class Account {
double balance_;
friend void transfer(Account& a, Account& b, double amount);
};Vérification rapide
Quel est le type de this dans une méthode de la classe Foo déclarée void f() const ?
Récapitulatif
this pointe vers l'objet courant dans les méthodes non statiques. Utilisez-le pour l'enchaînement (return *this) et pour lever les ambiguïtés. Encapsulez l'état avec des données privées et une interface publique réduite et clairement définie.
Questions Fréquemment Posées
La leçon « Le pointeur this et l’encapsulation » est-elle gratuite ?
Oui — le texte complet de « Le pointeur this et l’encapsulation » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours C++ Academy, passe à CoddyKit PRO. Le cours C++ Academy comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « Le pointeur this et l’encapsulation » ?
Utiliser le pointeur this et appliquer l’encapsulation avec les accès private et public Tu pratiques C++ Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer C++ Academy ?
Aucune expérience préalable n'est requise. C++ Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 4 sur 4.
Combien de temps prend la leçon « Le pointeur this et l’encapsulation » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon C++ Academy ?
Oui. Chaque leçon C++ Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- struct ou class : quand utiliser chacun
- Variables membres et méthodes
- Constructeurs et listes d’initialisation des membres
- Le pointeur this et l’encapsulation