Em C++, classes e estruturas são projetos usados para criar a instância de uma classe. Estruturas são usadas para objetos leves, como retângulo, cor, ponto, etc.
Ao contrário da classe, as estruturas em C++ são do tipo valor e não do tipo de referência. É útil se você tiver dados que não devem ser modificados após a criação da estrutura.
corte
Estrutura C++ é uma coleção de diferentes tipos de dados. É semelhante à classe que contém diferentes tipos de dados.
A sintaxe da estrutura
struct structure_name { // member declarations. }
Na declaração acima, uma estrutura é declarada precedendo o palavra-chave estrutura seguido pelo identificador (nome da estrutura). Dentro das chaves, podemos declarar as variáveis-membro de diferentes tipos. Considere a seguinte situação:
struct Student { char name[20]; int id; int age; }
No caso acima, Student é uma estrutura que contém três variáveis nome, id e idade. Quando a estrutura é declarada, nenhuma memória é alocada. Quando a variável de uma estrutura é criada, a memória é alocada. Vamos entender esse cenário.
Como criar a instância da Estrutura?
A variável de estrutura pode ser definida como:
Aluno;
data java para string
Aqui, s é uma variável de estrutura do tipo Estudante . Quando a variável de estrutura for criada, a memória será alocada. A estrutura do aluno contém uma variável char e duas variáveis inteiras. Portanto, a memória para uma variável char é de 1 byte e dois ints serão 2*4 = 8. A memória total ocupada pela variável s é de 9 bytes.
Como acessar a variável de Estrutura:
A variável da estrutura pode ser acessada simplesmente utilizando a instância da estrutura seguida do operador ponto (.) e depois o campo da estrutura.
Por exemplo:
s.id = 4;
Na instrução acima, estamos acessando o campo id da estrutura Student usando o comando ponto(.) operador e atribui o valor 4 ao campo id.
converter string em int java
Exemplo de estrutura C++
Vamos ver um exemplo simples de struct Rectangle que possui dois membros de dados largura e altura.
#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>
Exemplo de estrutura C++: usando construtor e método
Vamos ver outro exemplo de struct onde estamos usando o construtor para inicializar os dados e o método para calcular a área do retângulo.
#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>
Estrutura versus Classe
Estrutura | Aula |
---|---|
Se o especificador de acesso não for declarado explicitamente, então, por padrão, o especificador de acesso será público. | Se o especificador de acesso não for declarado explicitamente, então, por padrão, o especificador de acesso será privado. |
Sintaxe da Estrutura: estrutura nome_da_estrutura { // corpo da estrutura. } | Sintaxe da classe: classe nome_da_classe { //corpo da classe. } |
A instância da estrutura é conhecida como 'variável de estrutura'. | A instância da classe é conhecida como 'Objeto da classe'. |