Unterschied zwischen Struktur und Klasse

Autor: Laura McKinney
Erstelldatum: 1 April 2021
Aktualisierungsdatum: 4 Kann 2024
Anonim
104 Unterschiede zwischen Strukturen und Klassen in C#
Video: 104 Unterschiede zwischen Strukturen und Klassen in C#

Inhalt


Sowohl eine Struktur als auch eine Klasse bieten die Möglichkeit, einen benutzerdefinierten Datentyp zu erstellen, der zum Erstellen 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 dem Unterschied, dass standardmäßig alle Mitglieder der Struktur als "öffentlich" und die Klasse standardmäßig alle Mitglieder als "privat" definiert sind. Lassen Sie uns den Unterschied zwischen Struktur und Klasse anhand einer Vergleichstabelle untersuchen.

  1. Vergleichstabelle
  2. Definition
  3. Hauptunterschiede
  4. Ähnlichkeiten
  5. Fazit

Vergleichstabelle

Grundlage für den VergleichStrukturKlasse
Basic Wenn der Zugriffsspezifizierer nicht deklariert ist, sind standardmäßig alle Mitglieder öffentlich.Wenn der Zugriffsspezifizierer nicht deklariert ist, sind standardmäßig alle Mitglieder privat.
Erklärung struct struktur_name {
Typ struct_element 1;
Typ struct_element 2;
Typ struct_element 3;
.
.
.
};
class class_name {
Datenelement;
Mitgliedsfunktion;
};
Beispiel Instanz der Struktur heißt Strukturvariable.Instanz einer Klasse heißt Objekt.


Definition der Struktur

Eine Struktur ist eine Sammlung von Variablen mit unterschiedlichen 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 deklariert.

struct sname {Typ struct_element1; Typ struct_element2; Typ struct_element3; . . . } variable1, variable2,. . .;

Das Schlüsselwort "struct" definiert dem Compiler, dass eine Struktur deklariert wird. Die "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 mit dem Namen der Struktur voranstellen.

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

Hier sind S1 und S2 die Instanzen der Struktur. Die Instanzen der Struktur heißen „Strukturvariable“. Auf das im Strukturkörper deklarierte Element kann über die Strukturvariablen mit dem Punktoperator (.) 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;

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

  • Sie können einer Funktion ein Strukturelement und einer Funktion eine gesamte Struktur übergeben.
  • Wie Integer-Zeiger, Array-Zeiger kann auch ein Strukturzeiger deklariert werden, indem "*" vor den Namen der Strukturvariablen gesetzt wird.

// sample struct sname * S1;

Hinweis:

Die "Struktur" -Elemente werden an einem zusammenhängenden Speicherort gespeichert.

Definition der Klasse

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

class class_name {private Datenelemente und Elementfunktionen. access_specifier type data_member; Typ mem_funct (Parameterliste) {. . }} Objektliste;

Hier ist die Klasse ein Schlüsselwort, das dem Compiler mitteilt, dass eine Klasse deklariert wurde. Das Hauptmerkmal von OOP ist das Ausblenden von Daten, das durch die Bereitstellung von drei Zugriffsspezifizierern erreicht wird, die "öffentlich", "privat" und "geschützt" sind. Wenn Sie in der Klasse keinen Zugriffsbezeichner angeben, während Sie Datenelemente oder Elementfunktionen deklarieren, werden standardmäßig alle als privat betrachtet. Mit dem Public Access Specifier 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. Sobald Sie den Zugriffsbezeichner deklariert haben, kann dieser nicht mehr im gesamten Programm geändert werden.

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

//object.mem_funct (Argumente);

  • Das Objekt kann auch als Argument an eine Funktion übergeben werden.
  • Der Zeiger auf ein Objekt kann auch erstellt werden.
  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 äquivalent.
  • Sowohl die Struktur als auch die Klasse können einige ihrer Mitglieder als privat deklarieren.
  • 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 das Ausblenden von Daten nicht zulässt. Der Datentyp "struct" konnte nicht wie integrierte Typen behandelt werden. Strukturen unterstützen keine Vererbung. Struktur in C ++ überwand diese Einschränkungen. In C ++ sind Klassen die erweiterte Version der Struktur. Der Programmierer findet es einfach, die Klasse zu verwenden, um Daten zu speichern und beides zu funktionieren, und die Struktur nur, um Daten zu speichern.