Empfohlen, 2020

Tipp Der Redaktion

Unterschied zwischen Struktur und Klasse

Sowohl eine Struktur als auch eine Klasse bieten die Möglichkeit, einen benutzerdefinierten Datentyp zu erstellen, der zur Erstellung von Instanzen verwendet werden kann. C ++ erweitert die Rolle der Struktur, um eine Klasse zu erstellen. Sowohl die Struktur als auch die Klasse sind in jeder Hinsicht ähnlich, mit Ausnahme eines Unterschieds, bei dem die Struktur standardmäßig alle ihre Mitglieder als "öffentlich" und die Klasse standardmäßig alle ihre Mitglieder "privat" hat. Untersuchen wir den Unterschied zwischen Struktur und Klasse anhand eines Vergleichsdiagramms.

Vergleichstabelle

VergleichsgrundlageStrukturKlasse
BasicWenn der Zugriffsbezeichner nicht deklariert ist, sind standardmäßig alle Mitglieder 'public'.Wenn der Zugriffsbezeichner nicht deklariert ist, sind standardmäßig alle Mitglieder "privat".
Erklärungstruct strukturname {
Typ struct_element 1;
Typ struct_element 2;
Typ struct_element 3;
.
.
.
};
class class_name {
Datenmitglied;
Mitgliederfunktion;
};
BeispielInstanz von 'Struktur' wird 'Strukturvariable' genannt.Instanz einer 'Klasse' wird 'Objekt' genannt.

Definition der Struktur

Eine Struktur ist eine Sammlung von Variablen unterschiedlicher Datentypen, auf die alle mit einem Namen verwiesen wird. Eine Strukturdeklaration bildet eine Vorlage, mit der eine Instanz der Struktur erstellt wird. Die Struktur wird wie folgt erklärt.

 struct sname {Typ struct_element1; Typ struct_element2; Typ struct_element3; . . . } Variable1, Variable2, . . .. 

Das Schlüsselwort 'struct' definiert für den Compiler, dass eine Struktur deklariert wird. Der 'Sname' steht für den Namen der Struktur. Die Strukturdeklaration wird immer mit einem Semikolon abgeschlossen, da sie als Anweisung betrachtet wird. Sie können die Instanzen der Struktur vor ihrer Beendigung wie im obigen Code (Variable1, Variable2) deklarieren, oder Sie können die Instanz der Struktur in main () deklarieren, indem Sie den Instanznamen schreiben, dem der Name der Struktur vorangestellt ist.

 // Beispiel. main () {sname S1, S2; } 

Hier sind S1 und S2 die Instanzen der Struktur. Die Instanzen der Struktur werden als "Strukturvariable" bezeichnet. Auf das innerhalb des Strukturkörpers deklarierte Element kann über die Strukturvariablen mit dem Punkt (.) - Operator zugegriffen werden.

 // Beispiel S1. struct_element1; 
  • Das Array der Struktur kann auch erstellt werden. Dazu müssen Sie zuerst eine Struktur und dann ein Array dieses Typs deklarieren.
 // sample struct sname sarray [10]; 

Die obige Anweisung erstellt ein Array mit dem Namen 'sarray', der zehn Variablen enthält, und jede Variable ist wie in 'sname' definiert.

  • Sie können ein Strukturelement an eine Funktion übergeben und eine gesamte Struktur an eine Funktion übergeben.
  • Wie ein Integerzeiger, ein Arrayzeiger kann ein Strukturzeiger auch deklariert werden, indem vor dem Namen der Strukturvariablen '*' steht.
 // sample struct sname * S1; 

Hinweis:

Die 'Struktur'-Elemente werden in einem zusammenhängenden Speicherplatz gespeichert.

Definition der Klasse

Klasse in OOP definiert einen neuen Typ, der Datenmitglieder und Mitgliederfunktionen enthält, mit denen auf die Datenmitglieder der Klasse zugegriffen wird. Die Instanzen von Klassen werden als "Objekte" bezeichnet, von denen jedes die gleiche Organisation wie eine Klasse hat. Die Klasse ist eine logische Abstraktion, während ein Objekt eine physische Existenz hat. Die Klasse ist der Struktur syntaktisch ähnlich. Die Klasse kann wie folgt deklariert werden.

 class class_name {private Datenmitglieder und Mitgliederfunktionen. access_specifier-Typ data_member; Typ mem_funct (Parameterliste) {. . }} Objektliste; 

Hier ist die Klasse ein Schlüsselwort, das dem Compiler die Deklaration einer Klasse erklärt. Das Hauptmerkmal von OOP ist das Verbergen von Daten, das durch die Bereitstellung von drei Zugriffsbezeichnern erreicht wird, die "öffentlich", "privat" und "geschützt" sind. Wenn Sie bei der Deklaration von Datenmitgliedern oder Elementfunktionen keinen Zugriffsbezeichner in der Klasse angeben, werden alle standardmäßig als privat betrachtet. Mit dem öffentlichen Zugriffsbezeichner können andere Teile Ihres Programms auf Funktionen oder Daten zugreifen. Auf die privaten Mitglieder der Klasse kann nur ein Mitglied dieser Klasse zugreifen. Der geschützte Zugriffsbezeichner wird während der Vererbung angewendet. Wenn Sie den Zugriffsbezeichner deklariert haben, kann er nicht im gesamten Programm geändert werden.

Die Objekte sind nichts anderes als die Instanz der Klassen. Auf die Mitglieder der Klasse kann vom Objekt derselben Klasse mit einem Punktoperator (.) Zugegriffen werden.

 //object.mem_funct (Argumente); 
  • Das Objekt kann auch als Argument an eine Funktion übergeben werden.
  • Der Zeiger auf ein Objekt kann auch erstellt werden.

Hauptunterschiede zwischen Struktur und Klasse

  1. Der Hauptunterschied zwischen Strukturen und Klassen besteht darin, dass standardmäßig alle Mitglieder der Struktur öffentlich sind, während standardmäßig alle Mitglieder der Klasse privat sind.

Ähnlichkeiten:

  • In C ++ sind sowohl die Struktur als auch die Klasse syntaktisch gleichwertig.
  • Sowohl Struktur als auch Klasse können einige ihrer Mitglieder für privat erklären.
  • Der Name einer Struktur oder Klasse kann als eigenständiger Typ verwendet werden.
  • Sowohl die Struktur als auch eine Klasse unterstützen den Vererbungsmechanismus.

Fazit:

Die Struktur in C hatte einige Einschränkungen, da die Struktur kein Verbergen von Daten zulässt. Der Datentyp 'struct' konnte nicht wie eingebaute Typen behandelt werden. Strukturen unterstützen keine Vererbung. Struktur in C ++ hat diese Einschränkungen überwunden. In C ++ sind Klassen die erweiterte Version der Struktur. Der Programmierer findet es einfach, die Klasse zum Speichern von Daten zu verwenden und sowohl zu funktionieren als auch zu strukturieren und nur zum Speichern von Daten zu strukturieren.

Top