Struktur in der Klasse in C++

Namita Chaudhary 12 Oktober 2023
  1. Struktur in der Klasse in C++
  2. Struktur in C++
  3. Klasse in C++
  4. Verwenden Sie das Struct in einer Klasse in C++
  5. Fazit
Struktur in der Klasse in C++

Wir verwenden Arrays immer dann, wenn wir eine Gruppe ähnlicher Datentypen speichern müssen. Wenn jedoch eine Situation auftritt, in der wir eine Gruppe von nicht ähnlichen Datentypen speichern müssen, verwenden wir die Datentypen Struktur und Klasse.

Dieser Artikel erklärt die Struktur und die Klasse und wie man eine Struktur innerhalb einer Klasse verwendet.

Struktur in der Klasse in C++

Eine Struktur ist ein benutzerdefinierter Datentyp, der verwendet wird, um nicht ähnliche Datentypen zu speichern. Das Schlüsselwort struct deklariert es.

Andererseits ist eine Klasse auch ein benutzerdefinierter Datentyp, um nicht ähnliche Datentypen zu speichern. Das Schlüsselwort class bezeichnet es.

Der Hauptunterschied zwischen ihnen besteht jedoch darin, dass die Klasse die Implementierungsdetails ihrer Mitglieder verbirgt und standardmäßig alle Mitglieder einer Klasse privat macht, während eine Struktur die Implementierungsdetails ihrer Mitglieder nicht verbirgt und standardmäßig alle ihre Mitglieder als Öffentlichkeit.

Lassen Sie uns nun verstehen, wie eine Struktur und eine Klasse einzeln in C++ verwendet werden.

Struktur in C++

Wir deklarieren eine Struktur in C++ mit dem Schlüsselwort struct, gefolgt von der Deklaration aller ihrer Datenelemente. Sehen wir uns ein Codebeispiel an, um es besser zu verstehen.

#include <iostream>
using namespace std;
struct X {
  int a;
};
int main() {
  X x;
  x.a = 10;
  cout << x.a;
}

Ausgabe:

10

Im obigen Codebeispiel deklarieren wir eine Struktur X, in der wir eine Variable a deklarieren. Nun erstellen wir eine Instanz dieser Struktur und versuchen dann, über diese Instanz x in der Hauptmethode auf die Variable a zuzugreifen; Die Struktur kann leicht darauf zugreifen und ihren Wert ändern, da alle ihre Mitglieder standardmäßig öffentlich sind.

Klasse in C++

Wir deklarieren eine Klasse in C++ mit dem Schlüsselwort class, gefolgt von der Deklaration der Datenmember der Klasse. Lassen Sie uns die Verwendung einer Klasse in C++ mit Hilfe von Code verstehen.

#include <iostream>
using namespace std;
class X {
  int a;
};
int main() {
  X x;
  x.a = 10;
  cout << x.a;
}

Ausgabe:

./ex.cpp: In function 'int main)':
./ex.cpp:23:9: error: 'int X::a' is private
     int a;
         ^
./ex.cpp:28:7: error: within this context
     x.a = 10;
       ^
./ex.cpp:23:9: error: 'int X::a' is private
     int a;
         ^
./ex.cpp:29:13: error: within this context
     cout<<x.a;
             ^

Im obigen Codebeispiel haben wir eine Klasse erstellt, gefolgt von der Deklaration eines Datenelements darin als Variable a. Wir können jedoch nicht auf dieses Datenelement innerhalb unserer Hauptfunktion zugreifen, da die Elemente einer Klasse standardmäßig privat sind.

Daher kann nicht darauf zugegriffen werden und es wird ein Fehler ausgegeben.

Verwenden Sie das Struct in einer Klasse in C++

Wir haben gesehen, wie man eine Struktur und eine Klasse einzeln erstellt. Lassen Sie uns nun verstehen, wie wir eine Struktur innerhalb einer Klasse in C++ verwenden werden.

Wir werden dieses Konzept anhand eines Codebeispiels verstehen.

#include <iostream>
using namespace std;
class X {
 public:
  struct T {
    int a;
  };
};
int main() {
  X x;
  x.a = 10;
  cout << x.a;
}

Ausgabe:

./ex.cpp: In function 'int main)':
./ex.cpp:15:7: error: 'class X' has no member named 'a'
     x.a = 10;
       ^
./ex.cpp:16:13: error: 'class X' has no member named 'a'
     cout<<x.a;
             ^

Wie Sie sehen können, wirft der obige Code einen Fehler, wenn wir versuchen, auf die Strukturvariable a in unserer Hauptmethode zuzugreifen. Dies liegt daran, dass wir nur eine Instanz der Klasse erstellt haben und unsere Variable durch die Instanz der Klasse aufrufen.

Wir haben nicht einmal die Instanz der Struktur erstellt. Daher wirft das Programm einen Fehler, der die Variable a nicht bestimmt.

Jetzt werden wir besprechen, wie dieser Fehler behoben werden kann. Wie Sie in den Struktur- und Klassenbeispielen gesehen haben, müssen Sie eine Instanz einer Struktur und einer Klasse erstellen, bevor Sie auf ihre Mitglieder zugreifen können.

Das gleiche Konzept gilt, wenn Sie die Struktur innerhalb einer Klasse verwenden. Lassen Sie uns dies anhand eines Codebeispiels verstehen.

#include <iostream>
using namespace std;
class X {
 public:
  struct T {
    int a;
  };
  T t;
};
int main() {
  X x;
  x.t.a = 10;
  cout << x.t.a;
}

Ausgabe:

10

Deshalb haben wir jetzt eine Instanz der Struktur innerhalb der Klasse selbst erstellt und greifen mit Hilfe der Klasse und der Instanz der Struktur auf die Strukturvariable a zu.

Fazit

In diesem Artikel haben wir die Verwendung der Klasse sowie die Struktur in C++ gesehen. Beides sind benutzerdefinierte Datentypen; Der einzige Unterschied zwischen ihnen besteht jedoch darin, dass die Mitglieder einer Klasse standardmäßig privat sind, während die Mitglieder einer Struktur standardmäßig öffentlich sind.

Danach haben wir auch das Problem besprochen, auf das wir normalerweise stoßen, wenn wir eine Struktur in einer Klasse verwenden.

Verwandter Artikel - C++ Struct