Der this-Zeiger und Kapselung
Verwenden Sie den this-Zeiger und setzen Sie Kapselung mit privaten und öffentlichen Zugriffen durch.
Der this-Zeiger und Kapselung ist eine kostenlose C++ Academy-Lektion auf CoddyKit. Dies ist Lektion 4 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des C++ Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der C++ Academy-Kurs umfasst insgesamt 4 Lektionen.
Was ist this?
Innerhalb einer nichtstatischen Memberfunktion ist this ein impliziter Zeiger auf das aktuelle Objekt. Verwenden Sie ihn zur eindeutigen Auflösung oder zum Zurückgeben von Referenzen.
class Counter {
int n_ = 0;
public:
Counter& add(int x) {
n_ += x; // implicit this
return *this; // chain calls
}
};Impliziter Zugriff
Normalerweise müssen Sie this-> nicht schreiben. Membernamen werden automatisch aufgelöst – this->n_ und n_ sind gleichwertig.
Wann this-> erforderlich ist
Verwenden Sie this->, wenn ein Parameter einen Member verdeckt oder wenn die Auflösung in Templates Hilfe beim Auffinden geerbter Member benötigt.
class Person {
std::string name_;
public:
void setName(const std::string& name) {
this->name_ = name; // or name_ = name;
}
};*this für Verkettungen zurückgeben
Geben Sie *this zurück, um Fluent Interfaces zu unterstützen.
class StringBuilder {
std::string s_;
public:
StringBuilder& append(const std::string& part) {
s_ += part;
return *this;
}
};
StringBuilder sb;
sb.append("Hello, ").append("World!");this in const-Methoden
Innerhalb einer const-Methode hat this den Typ const ClassName*. Sie können Member darüber nicht ändern.
Kapselung: Die zentrale Idee
Kapselung bedeutet, den internen Zustand zu verbergen und nur sichere Operationen bereitzustellen. Machen Sie Daten privat und stellen Sie gezielte öffentliche Methoden bereit.
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(); }
};Warum kapseln?
Kapselung ermöglicht es Ihnen:
- die interne Darstellung zu ändern, ohne Aufrufer zu beeinträchtigen
- Invarianten an einer einzigen Stelle durchzusetzen
- Eingaben an der Grenze zu validieren
- den Objektzustand lokal nachzuvollziehen
Öffentliche Schnittstelle = Vertrag
Die öffentliche Schnittstelle ist ein Versprechen an die Aufrufer. Halten Sie sie minimal, bewusst gestaltet und stabil. Machen Sie Implementierungsdetails privat.
Getter und Setter
Ein verbreitetes Muster, das jedoch leicht übermäßig eingesetzt wird. Vermeiden Sie es, jeden Member mit get/set zu spiegeln – das macht die Kapselung zunichte. Stellen Sie Operationen statt Feldern bereit.
Const-Korrektheit erneut
Kennzeichnen Sie jede schreibgeschützte Methode mit const. Aufrufer erkennen dadurch, welche Methoden bei const-Instanzen sicher aufgerufen werden können, und der Compiler setzt dies durch.
Friend-Funktionen und -Klassen
Das Schlüsselwort friend gewährt einer anderen Funktion oder Klasse Zugriff auf private Member. Verwenden Sie es sparsam – es verstärkt die Kopplung.
class Account {
double balance_;
friend void transfer(Account& a, Account& b, double amount);
};Kurztest
Welchen Typ hat this innerhalb einer als void f() const deklarierten Methode der Klasse Foo?
Zusammenfassung
this verweist innerhalb nichtstatischer Methoden auf das aktuelle Objekt. Verwenden Sie es für Verkettungen (return *this) und zur eindeutigen Auflösung. Kapseln Sie den Zustand mit privaten Daten und einer kleinen, bewusst gestalteten öffentlichen Schnittstelle.
Häufig gestellte Fragen
Ist die Lektion „Der this-Zeiger und Kapselung“ kostenlos?
Ja — der vollständige Text von „Der this-Zeiger und Kapselung“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des C++ Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der C++ Academy-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „Der this-Zeiger und Kapselung“?
Verwenden Sie den this-Zeiger und setzen Sie Kapselung mit privaten und öffentlichen Zugriffen durch. Du übst C++ Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um C++ Academy zu starten?
Keine Vorkenntnisse erforderlich. C++ Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 4 von 4.
Wie lange dauert die Lektion „Der this-Zeiger und Kapselung“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser C++ Academy-Lektion Code schreiben und ausführen?
Ja. Jede C++ Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.
Alle Lektionen in diesem Kurs
- struct vs. class: Wann welches verwendet wird
- Membervariablen und Methoden
- Konstruktoren und Member-Initialisierungslisten
- Der this-Zeiger und Kapselung