C++ Klassen & Objekte

C++ erweitert C um objektorientierte Programmierung. C++ unterstützt objektorientierte Programmierung. Klassen sind ein Kernmerkmal von C++ und werden oft als benutzerdefinierte Typen bezeichnet.

Klassen werden verwendet, um die Form von Objekten festzulegen. Sie sind benutzerdefinierte Datentypen, die eine Kombination aus Daten und Funktionen kapseln. Die Daten in einer Klasse werden als Membervariablen bezeichnet, und die Funktionen werden als Memberfunktionen bezeichnet. Eine Klasse kann als Vorlage betrachtet werden, mit der mehrere Objekte mit denselben Eigenschaften und Verhaltensweisen erstellt werden können.

C++-Klassendefinition

Um eine Klasse zu definieren, müssen Sie das Schlüsselwortclassverwenden. Geben Sie dann den Namen der Klasse an, und der Klassenkörper wird in ein Paar geschweifte Klammern eingeschlossen. Der Körper enthält die Membervariablen und Memberfunktionen der Klasse.

Eine Klasse zu definieren bedeutet im Wesentlichen, einen Bauplan für einen Datentyp zu definieren. Er legt fest, was Objekte der Klasse enthalten und welche Operationen auf diesem Objekt ausgeführt werden können.

Im folgenden Beispiel verwenden wir das Schlüsselwortclass, um den Datentyp Box zu definieren, der drei Membervariablen enthält: length, breadth und height:

class Box { public: double length; // Länge der Box double breadth; // Breite der Box double height; // Höhe der Box };

SchlüsselwörterpublicEs bestimmt die Zugriffsattribute von Klassenmembern. Im Bereich eines Klassenobjekts sind public-Member von außerhalb der Klasse zugänglich. Sie können Klassenmember auch als...privateoderprotected angeben, was wir später erklären werden.

C++-Objekte definieren

Klassen bieten den Bauplan für Objekte, im Grunde werden Objekte also auf Basis von Klassen erstellt. Das Deklarieren eines Objekts einer Klasse ist wie das Deklarieren einer Variablen eines Basistyps. Die folgenden Anweisungen deklarieren zwei Objekte der Klasse Box:

Box Box1; // Box1 vom Typ Box deklarieren Box Box2; // Box2 vom Typ Box deklarieren

Die Objekte Box1 und Box2 haben jeweils eigene Datenmember.

Auf Datenmember zugreifen

Auf die öffentlichen Datenmember eines Klassenobjekts kann mit dem direkten Memberzugriffsoperator zugegriffen werden..zuzugreifen.

Um diese Konzepte besser zu verstehen, probieren wir das folgende Beispiel aus:

Beispiel

#include <iostream> using namespace std; class Box { public: double length; // Länge double breadth; // Breite double height; // Höhe // Memberfunktionsdeklaration double get(void); void set( double len, double bre, double hei ); }; // Memberfunktionsdefinition double Box::get(void) { return length * breadth * height; } void Box::set( double len, double bre, double hei) { length = len; breadth = bre; height = hei; } int main( ) { Box Box1; // Deklariere Box1 vom Typ Box Box Box2; // Deklariere Box2 vom Typ Box Box Box3; // Deklariere Box3 vom Typ Box double volume = 0.0; // Wird zum Speichern des Volumens verwendet // Box 1 Details Box1.height = 5.0; Box1.length = 6.0; Box1.breadth = 7.0; // Box 2 Details Box2.height = 10.0; Box2.length = 12.0; Box2.breadth = 13.0; // Volumen von Box 1 volume = Box1.height * Box1.length * Box1.breadth; cout << "Volumen von Box1:" << volume <<endl; // Volumen von Box 2 volume = Box2.height * Box2.length * Box2.breadth; cout << "Volumen von Box2:" << volume <<endl; // Details zu Box 3 Box3.set(16.0, 8.0, 12.0); volume = Box3.get(); cout << "Volumen von Box3:" << volume <<endl; return 0; }

Wenn der obige Code kompiliert und ausgeführt wird, liefert er die folgenden Ergebnisse:

Box1 的体积:210
Box2 的体积:1560
Box3 的体积:1536

Es sollte beachtet werden, dass auf private und protected Mitglieder nicht direkt mit dem direkten Mitgliedszugriffsoperator (.) zugegriffen werden kann. Wie man auf private und protected Mitglieder zugreift, werden wir in späteren Tutorials lernen.

Klassen- & Objektdetails

Bisher haben wir ein grundlegendes Verständnis von C++-Klassen und -Objekten gewonnen. Die folgende Liste enthält auch einige andere Konzepte im Zusammenhang mit C++-Klassen und -Objekten, und Sie können auf die entsprechenden Links klicken, um mehr zu erfahren.

KonzepteBeschreibung
Memberfunktionen einer KlasseMemberfunktionen einer Klasse sind solche, deren Definitionen und Prototypen innerhalb der Klassendefinition geschrieben werden, genau wie andere Variablen in der Klassendefinition.
Zugriffsmodifikatoren für KlassenKlassenmitglieder können als public, private oder protected definiert werden. Standardmäßig werden sie als private definiert.
Konstruktoren & DestruktorenEin Klassenkonstruktor ist eine spezielle Funktion, die aufgerufen wird, wenn ein neues Objekt erstellt wird. Ein Klassendestruktor ist ebenfalls eine spezielle Funktion, die aufgerufen wird, wenn das erstellte Objekt gelöscht wird.
C++-KopierkonstruktorEin Kopierkonstruktor ist ein spezieller Konstruktor, der beim Erstellen eines Objekts ein zuvor erstelltes Objekt derselben Klasse verwendet, um das neu erstellte Objekt zu initialisieren.
C++ Friend-FunktionenFriend-FunktionenKönnen auf die privaten und geschützten Mitglieder einer Klasse zugreifen.
C++ Inline-FunktionenBei Inline-Funktionen versucht der Compiler, den Code im Funktionsrumpf an der Stelle zu expandieren, an der die Funktion aufgerufen wird.
Der this-Zeiger in C++Jedes Objekt hat einen speziellen Zeigerthis, der auf das Objekt selbst zeigt.
Zeiger auf eine Klasse in C++Zeiger auf Klassen werden auf dieselbe Weise verwendet wie Zeiger auf Strukturen. Tatsächlich kann eine Klasse als eine Struktur mit Funktionen betrachtet werden.
C++ Statische Member einer KlasseSowohl Datenelemente als auch Funktionsmember einer Klasse können als statisch deklariert werden.
Weitere Erweiterungen