In C++ sind Klassen und Strukturen Blaupausen, die zum Erstellen der Instanz einer Klasse verwendet werden. Strukturen werden für leichte Objekte wie Rechtecke, Farben, Punkte usw. verwendet.
Im Gegensatz zu Klassen sind Strukturen in C++ ein Werttyp und kein Referenztyp. Dies ist nützlich, wenn Sie über Daten verfügen, die nach der Erstellung der Struktur nicht geändert werden sollen.
So deaktivieren Sie den Entwicklermodus in Android
C++-Struktur ist eine Sammlung verschiedener Datentypen. Es ähnelt der Klasse, die verschiedene Datentypen enthält.
Die Syntax der Struktur
struct structure_name { // member declarations. }
In der obigen Deklaration wird eine Struktur durch Voranstellen von deklariert struct-Schlüsselwort gefolgt von der Kennung (Strukturname). Innerhalb der geschweiften Klammern können wir Mitgliedsvariablen unterschiedlichen Typs deklarieren. Betrachten Sie die folgende Situation:
struct Student { char name[20]; int id; int age; }
Im obigen Fall ist Student eine Struktur, die drei Variablen enthält: Name, ID und Alter. Wenn die Struktur deklariert wird, wird kein Speicher zugewiesen. Wenn die Variable einer Struktur erstellt wird, wird der Speicher zugewiesen. Lassen Sie uns dieses Szenario verstehen.
Wie erstelle ich die Instanz von Structure?
Strukturvariable kann wie folgt definiert werden:
Studenten;
Ganzzahl zum Verdoppeln von Java
Hier ist s eine Strukturvariable vom Typ Student . Wenn die Strukturvariable erstellt wird, wird der Speicher zugewiesen. Die Studentenstruktur enthält eine char-Variable und zwei ganzzahlige Variablen. Daher beträgt der Speicher für eine char-Variable 1 Byte und zwei ints sind 2*4 = 8. Der von der s-Variablen belegte Gesamtspeicher beträgt 9 Byte.
So greifen Sie auf die Variable von Structure zu:
Auf die Variable der Struktur kann zugegriffen werden, indem einfach die Instanz der Struktur gefolgt vom Punktoperator (.) und dann dem Feld der Struktur verwendet wird.
Zum Beispiel:
s.id = 4;
In der obigen Anweisung greifen wir auf das ID-Feld der Struktur Student zu, indem wir verwenden Punkt(.) Operator und weist dem ID-Feld den Wert 4 zu.
Beispiel für eine C++-Struktur
Sehen wir uns ein einfaches Beispiel für die Struktur „Rectangle“ an, die über zwei Datenelemente (Breite und Höhe) verfügt.
Mark Zuckerberg Ausbildung
#include using namespace std; struct Rectangle { int width, height; }; int main(void) { struct Rectangle rec; rec.width=8; rec.height=5; cout<<'area of rectangle is: '<<(rec.width * rec.height)<<endl; return 0; } < pre> <p> <strong>Output:</strong> </p> <pre> Area of Rectangle is: 40 </pre> <h2>C++ Struct Example: Using Constructor and Method</h2> <p>Let's see another example of struct where we are using the constructor to initialize data and method to calculate the area of rectangle.</p> <pre> #include using namespace std; struct Rectangle { int width, height; Rectangle(int w, int h) { width = w; height = h; } void areaOfRectangle() { cout<<'area of rectangle is: '<<(width*height); } }; int main(void) { struct rec="Rectangle(4,6);" rec.areaofrectangle(); return 0; < pre> <p> <strong>Output:</strong> </p> <pre> Area of Rectangle is: 24 </pre> <p> <strong>Structure v/s Class</strong> </p> <table class="table"> <tr> <th>Structure</th> <th>Class</th> </tr> <tr> <td>If access specifier is not declared explicitly, then by default access specifier will be public. </td> <td>If access specifier is not declared explicitly, then by default access specifier will be private.</td> </tr> <tr> <td>Syntax of Structure: <br> <br> struct structure_name <br> { <br> // body of the structure. <br> }</td> <td>Syntax of Class: <br> <br> class class_name <br> { <br> // body of the class. <br> }</td> </tr> <tr> <td>The instance of the structure is known as 'Structure variable'. </td> <td>The instance of the class is known as 'Object of the class'.</td> </tr> </table></'area></pre></'area>
Beispiel für eine C++-Struktur: Verwendung von Konstruktor und Methode
Sehen wir uns ein weiteres Beispiel einer Struktur an, bei der wir den Konstruktor zum Initialisieren von Daten und eine Methode zum Berechnen der Fläche eines Rechtecks verwenden.
#include using namespace std; struct Rectangle { int width, height; Rectangle(int w, int h) { width = w; height = h; } void areaOfRectangle() { cout<<\'area of rectangle is: \'<<(width*height); } }; int main(void) { struct rec="Rectangle(4,6);" rec.areaofrectangle(); return 0; < pre> <p> <strong>Output:</strong> </p> <pre> Area of Rectangle is: 24 </pre> <p> <strong>Structure v/s Class</strong> </p> <table class="table"> <tr> <th>Structure</th> <th>Class</th> </tr> <tr> <td>If access specifier is not declared explicitly, then by default access specifier will be public. </td> <td>If access specifier is not declared explicitly, then by default access specifier will be private.</td> </tr> <tr> <td>Syntax of Structure: <br> <br> struct structure_name <br> { <br> // body of the structure. <br> }</td> <td>Syntax of Class: <br> <br> class class_name <br> { <br> // body of the class. <br> }</td> </tr> <tr> <td>The instance of the structure is known as 'Structure variable'. </td> <td>The instance of the class is known as 'Object of the class'.</td> </tr> </table></\'area>
Struktur vs. Klasse
Struktur | Klasse |
---|---|
Wenn der Zugriffsbezeichner nicht explizit deklariert wird, ist der Zugriffsbezeichner standardmäßig öffentlich. | Wenn der Zugriffsspezifizierer nicht explizit deklariert wird, ist der Zugriffsspezifizierer standardmäßig privat. |
Syntax der Struktur: struct Strukturname { // Körper der Struktur. } | Syntax der Klasse: Klasse Klassenname { // Körper der Klasse. } |
Die Instanz der Struktur wird als „Strukturvariable“ bezeichnet. | Die Instanz der Klasse wird als „Objekt der Klasse“ bezeichnet. |