Ir ao conteúdo
  • Cadastre-se

C++ Tipo de criação de STRUCT C++


Matheus Donadoni

Posts recomendados

então to estudando pra uma prova para amanham aqui, e eu com uma duvida na seguinte estrutura de struct

 

Qual a diferença em criar o struct desse modo, já passando o nome ja na criação do mesmo no caso lista

 

struct Lista {
    int tamanho;
    int tamanho2;
    int item  [MAX];
    int item2 [MAX];
    
    int opcLista ;

}lista;

 

e depois nos metodos passando somente assim

 

//CRIAÇÃO DO METODO

void selecionaLista () {
    
    cout << "Informe a lista " << endl ;
    
    for ( int i = 0 ; i < qtdListas; i ++) {
        cout << "("<< i  + 1 <<") Lista " << i + 1 << endl;
    }
    
    cin >> lista.opcLista ;
    
    system ("cls"); 
    
    cout << "Lista selecionada, " << lista.opcLista << endl;
    system ("pause");
    
}

//CHAMADA DO METODO

selecionaLista() ;

 

Mas chegando na pergunta de fato qual a diferença pra esse jeito aqui,(criando uma variavel no main do programa e passando ela com parâmetro sempre que chamo o metodo,)

 

//CRIAÇÃO DO MÉTODO 

bool inverteFila (Fila &fila){
    int cont = MAX - 1;
    
    if (filaVazia(fila)){
        cout << "Fila vazia !"    << endl;
        return false ;
    }
    
    for (int i = 0; i < MAX; i ++){
        fila.item2 = fila.item[cont] ;
        cont -- ;
    }
    
    cout << "Lista invertida !" << endl ;
    cout << endl ;
    
    for (int i = 0; i < MAX; i ++){
        cout << "Pos "<< i << " . " << fila.item2 << endl ;         
    }
}

 

 

//CHAMADA DO METODO
inverteFila(fila) ;

 

 

 

Não sei se ficou compreensível, mas se der pra entender, agradeço pela ajuda.  

Link para o comentário
Compartilhar em outros sites

Bom dia, então vamos por partes.

Ao criar uma struct fora/acima de main, sabemos que qualquer função posterior poderá usa-la.Então quando criamos assim:

struct Lista {
    int tamanho;
    int tamanho2;
    int item  [MAX];
    int item2 [MAX];
    
    int opcLista ;
}lista;

int main(){
...
}

A struct 'lista' se torna global e pode ser acessada em qualquer função, tal qual, é declarada após a struct Lista {...} lista;

 

Se você usar um argumento assim:

void blabla(Fila fila)              //Os dados são copiados - chamada: blabla(fila);

void blabla(Fila *fila)            //fila aponta para um endereço criado - chamada: blabla(&fila); ou pode ser blabla(fila) contanto que fila seja ptr

 

void blabla(Fila &fila)           //eu nunca tentei, mas acredito que receba um ponteiro ou endereço de struct

 

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...