Ir ao conteúdo

Posts recomendados

Postado

Na verdade até da pra fazer fora da main, em C++ até os construtores invocados rodam código fora da main sem aparente definição de função (tem a mágica do startup code ai, mas isso eh outra história), bastaria fazer um early initialize assim;

 

struct ab {
 string nome 
};

struct ab x[5] = {{"fulano"}, {"siclano"},{"nomefeio"}, {"nomebonito"}, {"bla"}};


Além disso faltou o struct antes do x, o erro de typename está ocorrendo porque "ab" não é um tipo, "struct ab" é um tipo, toda variavel deve ser precedida atraves de um tipo valido ou uma struct, alternativamente daria pra fazer com typedef (pouco recomendado) para voce declarar x sem o struct ab:

 

typedef struct  { //Seliga no typedef ali
 string nome 
} ab; //e se liga que o ab veio pra frente

//agora sim, ab sem o struct.
ab x[5] = {{"fulano"}, {"siclano"},{"nomefeio"}, {"nomebonito"}, {"bla"}};


Divirta-se

  • Curtir 2
Postado
  Em 28/11/2018 às 21:12, Felipe Electronic disse:

Além disso faltou o struct antes do x, o erro de typename está ocorrendo porque "ab" não é um tipo, "struct ab" é um tipo, toda variavel deve ser precedida atraves de um tipo valido ou uma struct, alternativamente daria pra fazer com typedef (pouco recomendado) para voce declarar x sem o struct ab:

Expandir  

 

Isso é verdade no C mas não no C++, em C++ ao declarar uma variável da struct ab não é necessário usar a palavra chave struct antes do nome ab, então isso é perfeitamente válido:

 

#include <iostream>

using namespace std;

struct ab{
   string nome;
};

int main(){
    ab x[5];
    
    x[0].nome = "Exemplo";
    
    cout << x[0].nome << endl;
    
    return 0;
}

Teste aqui: https://onlinegdb.com/B12E793RQ

 

E outro exemplo: https://onlinegdb.com/S1tIX53Cm

 

 

struct do C e do C++ tem várias diferenças, seguem alguns links que explicam estas diferenças:

https://www.quora.com/What-is-the-difference-between-C-structure-C++-structure

https://stackoverflow.com/questions/2242696/c-structure-and-c-structure

  • Curtir 2
Postado
  Em 28/11/2018 às 22:17, isrnick disse:

 

Isso é verdade no C mas não no C++, em C++ ao declarar uma variável da struct ab não é necessário usar a palavra chave struct antes do nome ab, então isso é perfeitamente válido:

 

#include <iostream>

using namespace std;

struct ab{
   string nome;
};

int main(){
    ab x[5];
    
    x[0].nome = "Exemplo";
    
    cout << x[0].nome << endl;
    
    return 0;
}

Teste aqui: https://onlinegdb.com/B12E793RQ

 

E outro exemplo: https://onlinegdb.com/S1tIX53Cm

 

 

struct do C e do C++ tem várias diferenças, seguem alguns links que explicam estas diferenças:

https://www.quora.com/What-is-the-difference-between-C-structure-C++-structure

https://stackoverflow.com/questions/2242696/c-structure-and-c-structure

Expandir  

VERDADE! isso que da ficar muito tempo sem mexer com CPP, o veio aqui perdeu a mão :)
Acho bem curioso o fato do struct e o class serem iguais apenas mudando seus defaults, no struct é tudo publico no class tudo privado, me parece questão de semântica (ou legacy do C)

  • Curtir 1

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

Mostrar 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

Mostrar mais  
×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!