Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Industrial programming >> Linguagem C

Structs em C++ Explicadas com Exemplo Prático

O que é uma Struct em C++?

Uma STRUCT é uma estrutura de dados C++ que pode ser usada para armazenar juntos elementos de diferentes tipos de dados. Em C++, uma estrutura é um tipo de dado definido pelo usuário. A estrutura cria um tipo de dado para agrupar itens de diferentes tipos de dados sob um único tipo de dado.

Por exemplo:

Suponha que você precise armazenar informações sobre alguém: 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 struct.

Neste tutorial C++, você aprenderá:

Quando Usar uma Structure?

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

Inicialização de Struct C++

Para criar uma estrutura C++, usamos a palavra-chave struct, seguida por um identificador. O identificador torna-se o nome da struct. Aqui está a sintaxe para criação de uma struct C++:

Sintaxe:

struct nome_struct {
    // membros da struct
}

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

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

Por exemplo:

struct Pessoa {
    char nome[30];
    int cidadania;
    int idade;
}

No exemplo acima, Pessoa é uma estrutura com três membros. Os membros incluem nome, cidadania e idade. Um membro é do tipo char, enquanto os outros 2 são inteiros. Quando uma estrutura é criada, memória não é alocada. Memória só é alocada após uma variável ser adicionada à struct.

Criando Instâncias de Struct

No exemplo acima, criamos uma struct chamada Pessoa. Podemos criar uma variável struct da seguinte forma:

Pessoa p;

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

Acessando Membros da Struct

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

p.idade = 27;

Acessamos o membro idade da struct Pessoa usando a instância da struct, p. Então definimos o valor do membro idade para 27.

Exemplo 1:

#include <iostream>
using namespace std;
struct Pessoa {
    int cidadania;
    int idade;
};
int main(void) {
    struct Pessoa p;
    p.cidadania = 1;
    p.idade = 27;
    cout << "Cidadania da Pessoa: " << p.cidadania << endl;
    cout << "Idade da Pessoa: " << p.idade << endl;
    return 0;
}

Saída:

Cidadania da Pessoa: 1
Idade da Pessoa: 27

Explicação do Código:

  1. Inclui o cabeçalho iostream no programa para usar suas funções.
  2. Inclui o namespace std para usar suas classes sem chamá-lo.
  3. Cria uma struct chamada Pessoa.
  4. Início do corpo da struct.
  5. Cria membro da struct chamado cidadania do tipo inteiro.
  6. Cria membro da struct chamado idade do tipo inteiro.
  7. Fim do corpo da struct.
  8. Chama a função main(). A lógica do programa deve ser adicionada dentro do corpo desta função.
  9. Cria uma instância da struct Pessoa dando-lhe o nome p.
  10. Define o valor do membro da struct cidadania como 1.
  11. Define o valor do membro da struct idade como 27.
  12. Imprime o valor do membro da struct cidadania no console junto com outro texto.
  13. Imprime o valor do membro da struct idade no console junto com outro texto.
  14. O programa deve retornar um valor se executar com sucesso.
  15. Fim da função main().

Ponteiros para Structure

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

Exemplo 2:

#include <iostream>
using namespace std;
struct Comprimento {
    int metros;
    float centimetros;
};
int main() {
    Comprimento *ptr, c;
    ptr = &c;
    cout << "Digite metros: ";
    cin >> (*ptr).metros;
    cout << "Digite centímetros: ";
    cin >> (*ptr).centimetros;
    cout << "Comprimento = " << (*ptr).metros << " metros " << (*ptr).centimetros << " centímetros";
    return 0;
}

Explicação do Código:

  1. Inclui o cabeçalho iostream no programa para usar suas funções.
  2. Inclui o namespace std no programa para usar suas classes sem chamá-lo.
  3. Cria uma struct chamada Comprimento.
  4. Início do corpo da struct Comprimento.
  5. Cria membro da struct chamado metros do tipo inteiro.
  6. Cria membro da struct chamado centimetros do tipo float.
  7. Fim do corpo da struct Comprimento.
  8. Chama a função main().
  9. Início do corpo da função main().
  10. Cria variável ponteiro *ptr e variável normal c do tipo Comprimento.
  11. Armazena o endereço da variável c na variável ponteiro.
  12. Exibe mensagem no console pedindo ao usuário para inserir valor para metros.
  13. Lê valor inserido pelo usuário via teclado. O membro metros é acessado usando a variável ponteiro.
  14. Exibe mensagem no console pedindo ao usuário para inserir valor para centímetros.
  15. Lê valor inserido pelo usuário via teclado. O membro centimetros é acessado usando a variável ponteiro.
  16. Exibe os valores lidos do usuário no console junto com outro texto.
  17. O programa deve retornar um valor após execução bem-sucedida.
  18. Fim do corpo da função main().

Struct como Argumento de Função

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

Exemplo 3:

#include <iostream>
using namespace std;
struct Pessoa {
    int cidadania;
    int idade;
};
void func(struct Pessoa p);
int main() {
    struct Pessoa p;
    p.cidadania = 1;
    p.idade = 27;
    func(p);
    return 0;
}
void func(struct Pessoa p) {
    cout << " Cidadania da Pessoa: " << p.cidadania << endl;
    cout << " Idade da Pessoa: " << p.idade;
}

Explicação do Código:

  1. Inclui o cabeçalho iostream no arquivo. Usaremos suas funções sem erros.
  2. Inclui o namespace std no programa para usar suas classes. Não precisaremos chamar o namespace para usar suas classes.
  3. Cria uma struct chamada Pessoa.
  4. Início do corpo da struct Pessoa.
  5. Cria membro da struct Pessoa. O membro é chamado cidadania e é do tipo inteiro.
  6. Cria membro da struct Pessoa. O membro é chamado idade e é do tipo inteiro.
  7. Fim do corpo da struct Pessoa.
  8. Cria uma função que recebe a instância da struct Pessoa, p, como argumento.
  9. Chama a função main. O { marca o início do corpo da função main().
  10. Cria uma instância da struct Pessoa dando-lhe o nome p.
  11. Acessa a variável membro da struct cidadania usando a instância da struct, p, e atribuindo o valor 1.
  12. Acessa a variável membro da struct idade usando a instância da struct, p, e atribuindo o valor 27.
  13. Chama a função passando a instância da struct Pessoa, p, como argumento.
  14. A função deve retornar um valor após execução bem-sucedida.
  15. Fim do corpo da função main().
  16. Cria o corpo da função.
  17. Início do corpo da função.
  18. Acessa o valor do membro cidadania da struct e imprime no console junto com outro texto.
  19. Acessa o valor do membro idade da struct e imprime no console junto com outro texto.
  20. Fim do corpo da função.

Limitação de uma Estrutura C++

As seguintes são as limitações das estruturas:

Resumo:

Linguagem C

  1. Dominando Structs e Ponteiros em C: Guia Prático
  2. Laço do-while em C++: Sintaxe, Exemplos Práticos e Loops Aninhados
  3. Dominando Switch-Case em C++: Sintaxe, Uso e Exemplos Práticos
  4. Dominando Alocação Dinâmica de Arrays em C++: Guia Prático com Exemplos de Código
  5. Dominando Ponteiros em C++: Conceitos, Exemplos e Aplicações Práticas
  6. Dominando o Tipo Char em C++: Declaração, ASCII e Técnicas de Conversão
  7. Sobrecarga de Operadores em C++: Guia Prático com Exemplos de Código
  8. Dominando std::list em C++: Sintaxe, Funções e Exemplos Práticos
  9. Funções em C++ Explicadas com Exemplos Práticos de Código
  10. C++ Struct vs Class: Diferenças Principais, Sintaxe e Melhores Casos de Uso