C++ · Essencial · Inglês · Técnico
struct
Tipo composto igual a class, exceto que os membros e a herança são públicos por padrão. Por convenção, é usado para agregados simples de dados, sem invariantes a proteger.
Onde usar
Aparece em DTOs, pares de valores e tipos pequenos passados por valor. No review, a escolha entre struct e class sinaliza se há invariantes a proteger.
Em código
struct Ponto {
double x = 0;
double y = 0;
};
Ponto p{1.5, 2.0}; // agregadoExemplos
I made it a struct because it's just three public fields.
Fiz dele uma struct porque são só três campos públicos.
Pass the struct by const reference, it's not tiny.
Passe a struct por referência constante, ela não é pequena.
Cuidado
Não é a struct de C: a de C++ aceita funções membro, construtores e herança, e dispensa repetir a palavra struct ao usar o nome.
Origem
Abreviação de structure, estrutura em inglês.