C++ Estruturar com exemplo

⚡ Resumo Inteligente

Estrutura em C++ É um tipo de dados definido pelo usuário que agrupa elementos de diferentes tipos de dados sob um único nome, permitindo que uma variável contenha valores relacionados, como nome de uma pessoa, cidadania e idade.

  • 📦 Diferentes tipos de dados: Uma struct agrupa variáveis ​​de tipos diferentes sob um nome definido pelo usuário.
  • 🔑 Palavra-chave struct: Defina uma estrutura com a palavra-chave struct e, em seguida, liste os membros dentro de chaves.
  • 🧱 Criação de instâncias: O comando `Write Person p` cria uma variável do tipo `struct` e aloca memória para ela.
  • 🎯 Operador ponto: Leia ou defina qualquer membro através da instância, como em p.age = 27.
  • ➡️ Ponteiros e funções: Uma struct funciona com ponteiros e os passa para uma função como se fossem argumentos comuns.
  • 🤖 Assistência de IA: O GitHub Copilot e outros assistentes de IA criam definições de estruturas e acesso a membros a partir de um comentário.

C++ Estrutura

O que é uma estrutura em C++?

Uma ESTRUTURA é uma C++ estrutura de dados que pode ser usada para armazenar juntos elementos de diferentes tipos de dados. Em C++Uma estrutura é um tipo de dados definido pelo usuário. A estrutura cria um tipo de dados para um grupo.ping Itens de diferentes tipos de dados sob um único tipo de dados.

Por exemplo:

Suponha que você precise armazenar informações sobre alguém, seu nome, cidadania e idade. Você pode criar variáveis ​​como nome, cidadania e idade para armazenar os dados separadamente.

No entanto, você pode precisar armazenar informações sobre muitas pessoas no futuro. Isso significa que variáveis ​​para diferentes indivíduos serão criadas. Por exemplo, nome1, cidadania1, idade1 etc. Para evitar isso, é melhor criar uma estrutura (struct).

Quando usar uma Estrutura?

Aqui estão alguns motivos para usar estrutura em C++.

  • Use uma estrutura quando precisar armazenar elementos de diferentes tipos de dados em um tipo de dados.
  • C++ structs são um tipo de valor em vez de um tipo de referência. Use uma estrutura se não pretende modificar seus dados após a criação.

C++ Inicialização da estrutura

Para criar uma barreira temporária, você pode usar móveis que já estão em sua casa. C++ estrutura, usamos a palavra-chave struct, seguida por um identificador. O identificador se torna o nome da estrutura. Aqui está a sintaxe para a criação de um C++ estrutura:

Sintaxe:

struct struct_name  
{  
     // struct members
}   

Na sintaxe acima, usamos a palavra-chave struct. O struct_name é o nome da estrutura.

Os membros da estrutura são adicionados entre chaves. Esses membros provavelmente pertencem a tipos de dados diferentes.

Por exemplo:

struct Person  
{  
    char name[30];  
     int citizenship;  
     int age;  
}  

No exemplo acima, Person é uma estrutura com três membros. Os membros incluem nome, cidadania e idade. Um membro é do tipo de dados char, enquanto os 2 restantes são inteiros quando uma estrutura é criada, a memória não é alocada. A memória só é alocada depois que uma variável é adicionada à estrutura.

Criando Instâncias Estruturais

No exemplo acima, criamos uma estrutura chamada Person. Podemos criar uma variável struct da seguinte maneira:

Person p;

O p é uma variável struct do tipo Person. Podemos usar esta variável para acessar os membros da estrutura.

Acessando membros da estrutura

Para acessar os membros da estrutura, usamos a instância da estrutura e o operador ponto (.). Por exemplo, para acessar a idade do membro da struct Person:

p.age = 27;

Acessamos a idade do membro da struct Person usando a instância da struct, p. Em seguida, definimos o valor da idade do membro como 27.

1 exemplo:

#include <iostream>    
using namespace std;
struct Person
{
	int citizenship;
	int age;
};
int main(void) {
	struct Person p;
	p.citizenship = 1;
	p.age = 27;
	cout << "Person citizenship: " << p.citizenship << endl;
	cout << "Person age: " << p.age << endl;

	return 0;
}

Saída:

Acessando membros da estrutura

Aqui está uma captura de tela do código:

Acessando membros da estrutura

Code Explicação:

  1. Inclua o arquivo de cabeçalho iostream em nosso programa para usar as funções nele definidas.
  2. Inclua o namespace std para usar suas classes sem chamá-lo.
  3. Crie uma estrutura chamada Person.
  4. O início do corpo da estrutura.
  5. Crie um membro struct chamado cidadania do tipo inteiro.
  6. Crie um membro struct chamado age do tipo inteiro.
  7. Fim do corpo da estrutura.
  8. Chame a função main(). A lógica do programa deve ser adicionada ao corpo desta função.
  9. Crie uma instância da estrutura Person e dê a ela o nome p.
  10. Defina o valor da cidadania do membro struct como 1.
  11. Defina o valor da idade do membro da estrutura como 27.
  12. Imprima o valor da cidadania do membro da estrutura no console junto com algum outro texto.
  13. Imprima o valor da idade do membro da estrutura no console junto com algum outro texto.
  14. O programa deverá retornar um valor se for executado com sucesso.
  15. Fim da função main().

Ponteiros para estrutura

É possível criar um ponteiro que aponta para uma estrutura. É semelhante a como ponteiros apontando para tipos de dados nativos como int, float, double, etc. são criados. Note que um ponteiro em C++ armazenará um local de memória.

2 exemplo:

#include <iostream>
using namespace std;

struct Length
{
	int meters;
	float centimeters;
};

int main()
{
	Length *ptr, l;

	ptr = &l;

	cout << "Enter meters: ";
	cin >> (*ptr).meters;
	cout << "Enter centimeters: ";
	cin >> (*ptr).centimeters;
	cout << "Length = " << (*ptr).meters << " meters " << (*ptr).centimeters << " centimeters";

	return 0;
}

Saída:

Ponteiros para estrutura

Aqui está uma captura de tela do código:

Ponteiros para estrutura

Code Explicação:

  1. Inclua o arquivo de cabeçalho iostream em nosso programa para usar suas funções.
  2. Inclua o namespace std em nosso programa para usar suas classes sem chamá-lo.
  3. Crie uma estrutura chamada Comprimento.
  4. Início do corpo da estrutura Length.
  5. Crie um membro struct denominado metros do tipo de dados inteiro.
  6. Crie um membro struct denominado centímetros do tipo inteiro.
  7. Fim do corpo da estrutura Length.
  8. Chame a função main().
  9. Início do corpo da função main().
  10. Crie uma variável de ponteiro *ptr e uma variável normal l do tipo Length.
  11. Armazene o endereço da variável l em nosso variável de ponteiro.
  12. Exibe uma mensagem no console, solicitando que o usuário insira o valor dos medidores variáveis.
  13. Leia o valor inserido pelo usuário através do teclado. Os medidores da função membro são acessados ​​aqui usando a variável de ponteiro.
  14. Exibe uma mensagem no console, solicitando que o usuário insira o valor da variável centímetros.
  15. Leia o valor inserido pelo usuário através do teclado. A função membro centímetros é acessada aqui usando a variável ponteiro.
  16. Exiba os valores lidos do usuário no console junto com algum outro texto.
  17. O programa deve retornar um valor após a execução bem-sucedida.
  18. Fim do corpo da função main().

Estrutura como argumento de função

Você pode passar uma estrutura para uma função como argumento. Isso é feito da mesma maneira que passar um argumento normal. As variáveis ​​struct também podem ser passadas para uma função. Um bom exemplo é quando você precisa exibir os valores dos membros da estrutura. Vamos demonstrar isso:

3 exemplo:

#include<iostream>
using namespace std;

struct Person
{
	int citizenship;
	int age;
};

void func(struct Person p);

int main()
{
	struct Person p;

	p.citizenship = 1;
	p.age = 27;

	func(p);
	return 0;
}
void func(struct Person p)
{
	cout << " Person citizenship: " << p.citizenship<<endl;
	cout << " Person age: " << p.age;
}

Saída:

Estrutura como argumento de função

Aqui está uma captura de tela do código:

Estrutura como argumento de função

Code Explicação:

  1. Inclua o arquivo de cabeçalho iostream em nosso arquivo. Usaremos então suas funções sem obter erros.
  2. Inclua o namespace std em nosso programa para usar suas classes. Não precisaremos chamar o namespace para usar suas classes.
  3. Crie uma estrutura chamada Person.
  4. Início do corpo da estrutura Person.
  5. Crie um membro da estrutura Pessoa. O membro é denominado cidadania e é do tipo inteiro.
  6. Crie um membro da estrutura Person. O membro é denominado idade e é do tipo inteiro.
  7. Fim do corpo da estrutura Pessoa.
  8. Crie uma função que receba a instância de struct Person, p, como argumento.
  9. Chame a função principal. O {marca o início do corpo da função main().
  10. Crie uma instância de struct Person e dê a ela o nome p.
  11. Acesse a variável membro da estrutura cidadania usando a instância da estrutura, p, e atribuindo a ela o valor 1.
  12. Acesse a variável do membro da estrutura age usando a instância da estrutura, p, e atribuindo a ela o valor 27.
  13. Chame a função e passe para ela a instância da estrutura Person, p, como argumento.
  14. A função deve retornar um valor após a execução bem-sucedida.
  15. Fim do corpo da função main().
  16. Crie o corpo da função.
  17. O início do corpo da função.
  18. Acesse o valor de cidadania do membro struct e imprima-o no console junto com outro texto.
  19. Acesse o valor da idade do membro da estrutura e imprima-o no console junto com outro texto.
  20. Fim do corpo da função.

Limitação de um C++ estrutura

A seguir estão as limitações das estruturas:

  • O tipo de dados struct não pode ser tratado como tipos de dados integrados.
  • Operators como + -, e outros não podem ser usados ​​em variáveis ​​de estrutura.
  • As estruturas não suportam ocultação de dados. Os membros de uma estrutura podem ser acessados ​​por qualquer função, independentemente do seu escopo.
  • Membros estáticos não podem ser declarados dentro do corpo da estrutura.
  • Os construtores não podem ser criados dentro de uma estrutura.

Perguntas Frequentes

In C++ Uma struct e uma classe são quase idênticas. A única diferença real é o acesso padrão: os membros de uma struct são públicos por padrão, enquanto os membros de uma classe são privados. Ambas suportam funções membro, construtores e herança.

A estrutura AC armazena apenas dados, e você deve escrever `struct` antes de cada declaração de variável. C++ A estrutura (struct) também pode incluir funções membro, construtores e especificadores de acesso, e a palavra-chave `struct` é opcional ao declarar variáveis.

Declare a struct e, em seguida, defina um array dela, por exemplo, `Person people[3]`. Cada elemento é uma struct completa, e você acessa os membros com `people[0].age`. Arrays de structs armazenam vários registros do mesmo tipo juntos.

Uma estrutura aninhada é uma struct declarada como membro dentro de outra struct. Ela agrupa subdados relacionados, como uma struct `Date` colocada dentro de uma struct `Employee`. Você acessa os membros internos encadeando o operador ponto.

O tamanho é aproximadamente a soma de seus membros, mais o preenchimento que o compilador adiciona para alinhamento, portanto, `sizeof` pode exceder o total bruto. Funções membro não adicionam nada. Ordenar os membros por tamanho reduz o preenchimento desnecessário.

Use o operador de seta quando você tiver um ponteiro para uma struct. Em vez de (*ptr).age, o atalho ptr->age lê o mesmo membro. O operador ponto funciona em uma instância direta, não em um ponteiro.

Sim. Assistentes de programação com IA transformam uma breve instrução ou comentário em uma solução completa. C++ struct, incluindo membros, construtores e acesso a campos. Sempre revise os tipos de dados gerados e o alinhamento, pois a IA pode não atender a requisitos específicos do projeto.

Sim. Travas deslizantes portáteis Copiloto do GitHub Sugere definições de structs, variáveis ​​de membro e acesso por ponto ou seta conforme você digita no seu editor. Lida bem com código repetitivo, embora você ainda deva verificar tipos, preenchimento e lógica antes de compilar.

Resuma esta postagem com: