In C++ zijn klassen en structs blauwdrukken die worden gebruikt om de instantie van een klasse te maken. Structuren worden gebruikt voor lichtgewicht objecten zoals rechthoek, kleur, punt, enz.
In tegenstelling tot klasse zijn structs in C++ een waardetype en geen referentietype. Het is handig als u gegevens hebt die niet mogen worden gewijzigd na het maken van de struct.
faculteit in c
C++-structuur is een verzameling van verschillende gegevenstypen. Het is vergelijkbaar met de klasse die verschillende soorten gegevens bevat.
De syntaxis van structuur
struct structure_name { // member declarations. }
In de bovenstaande declaratie wordt een structuur gedeclareerd door voorafgaande aan de struct-trefwoord gevolgd door de identificatie (structuurnaam). Binnen de accolades kunnen we de lidvariabelen van verschillende typen declareren. Beschouw de volgende situatie:
struct Student { char name[20]; int id; int age; }
In het bovenstaande geval is Student een structuur die drie variabelen bevat: naam, id en leeftijd. Wanneer de structuur wordt gedeclareerd, wordt er geen geheugen toegewezen. Wanneer de variabele van een structuur wordt aangemaakt, wordt het geheugen toegewezen. Laten we dit scenario begrijpen.
Hoe maak ik een exemplaar van Structure?
Structuurvariabele kan worden gedefinieerd als:
Studenten;
string parseren naar int
Hier is s een structuurvariabele van het type Student . Wanneer de structuurvariabele wordt aangemaakt, wordt het geheugen toegewezen. De studentenstructuur bevat één char-variabele en twee integer-variabelen. Daarom is het geheugen voor één char-variabele 1 byte en zijn twee ints 2*4 = 8. Het totale geheugen dat door de s-variabele wordt ingenomen, is 9 byte.
Toegang krijgen tot de variabele Structuur:
De variabele van de structuur is toegankelijk door eenvoudigweg de instantie van de structuur te gebruiken, gevolgd door de puntoperator (.) en vervolgens het veld van de structuur.
b plus boom
Bijvoorbeeld:
s.id = 4;
In de bovenstaande verklaring hebben we toegang tot het id-veld van de structuur Student met behulp van de punt(.) operator en wijst de waarde 4 toe aan het id-veld.
C++ structuurvoorbeeld
Laten we een eenvoudig voorbeeld bekijken van struct Rectangle met twee gegevensleden in de breedte en hoogte.
#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>
C++-structuurvoorbeeld: constructor en methode gebruiken
Laten we nog een voorbeeld van een structuur bekijken waarbij we de constructor gebruiken om gegevens te initialiseren en een methode om de oppervlakte van de rechthoek te berekenen.
#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>
Structuur versus klasse
Structuur | Klas |
---|---|
Als de toegangsspecificatie niet expliciet wordt gedeclareerd, is de toegangsspecificatie standaard openbaar. | Als de toegangsspecificatie niet expliciet wordt gedeclareerd, is de toegangsspecificatie standaard privé. |
Syntaxis van structuur: struct structuurnaam { // hoofdgedeelte van de structuur. } | Syntaxis van klasse: klasse klassenaam { // hoofdgedeelte van de klas. } |
De instantie van de structuur staat bekend als 'Structuurvariabele'. | De instantie van de klasse staat bekend als 'Object van de klasse'. |