logo

Estructures C++

En C++, les classes i les estructures són plànols que s'utilitzen per crear la instància d'una classe. Les estructures s'utilitzen per a objectes lleugers com ara rectangle, color, punt, etc.

A diferència de la classe, les estructures en C++ són de tipus valor que no pas de referència. És útil si teniu dades que no es volen modificar després de la creació de l'estructura.

estats als EUA

Estructura C++ és una col·lecció de diferents tipus de dades. És similar a la classe que conté diferents tipus de dades.

La sintaxi de l'estructura

 struct structure_name { // member declarations. } 

A la declaració anterior, es declara una estructura abans de paraula clau struct seguit de l'identificador (nom de l'estructura). Dins de les claus, podem declarar les variables membres de diferents tipus. Considereu la situació següent:

 struct Student { char name[20]; int id; int age; } 

En el cas anterior, Student és una estructura que conté tres variables nom, id i edat. Quan es declara l'estructura, no s'assigna cap memòria. Quan es crea la variable d'una estructura, s'assigna la memòria. Entenem aquest escenari.

Com crear la instància de Structure?

La variable d'estructura es pot definir com:

Estudiant s;

usos del sistema operatiu

Aquí, s és una variable d'estructura de tipus Estudiant . Quan es crea la variable d'estructura, s'assignarà la memòria. L'estructura de l'estudiant conté una variable char i dues variables enteres. Per tant, la memòria per a una variable de caràcters és d'1 byte i dos int seran 2*4 = 8. La memòria total ocupada per la variable s és de 9 bytes.

Com accedir a la variable d'Estructura:

Es pot accedir a la variable de l'estructura utilitzant simplement la instància de l'estructura seguida de l'operador de punt (.) i després el camp de l'estructura.

java int a cadena

Per exemple:

 s.id = 4; 

A la declaració anterior, estem accedint al camp id de l'estructura Student mitjançant l' punt (.) operador i assigna el valor 4 al camp id.

Exemple d'estructura C++

Vegem un exemple senzill de struct Rectangle que té dos membres de dades d'amplada i alçada.

 #include using namespace std; struct Rectangle { int width, height; }; int main(void) { struct Rectangle rec; rec.width=8; rec.height=5; cout&lt;<'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&apos;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&lt;<'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 &apos;Structure variable&apos;. </td> <td>The instance of the class is known as &apos;Object of the class&apos;.</td> </tr> </table></'area></pre></'area>

Exemple d'estructura C++: utilitzant el constructor i el mètode

Vegem un altre exemple d'estructura on estem utilitzant el constructor per inicialitzar les dades i el mètode per calcular l'àrea del rectangle.

 #include using namespace std; struct Rectangle { int width, height; Rectangle(int w, int h) { width = w; height = h; } void areaOfRectangle() { cout&lt;<\'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 &apos;Structure variable&apos;. </td> <td>The instance of the class is known as &apos;Object of the class&apos;.</td> </tr> </table></\'area>

Estructura v/s Classe

Estructura Classe
Si l'especificador d'accés no es declara explícitament, per defecte l'especificador d'accés serà públic. Si l'especificador d'accés no es declara explícitament, per defecte l'especificador d'accés serà privat.
Sintaxi de l'estructura:

struct nom_estructura
{
// cos de l'estructura.
}
Sintaxi de la classe:

classe nom_classe
{
// cos de la classe.
}
La instància de l'estructura es coneix com a 'variable d'estructura'. La instància de la classe es coneix com a 'Objecte de la classe'.