Ir para o conteúdo

Última atualização:2026-10-15

struct vs class em C++

Sobre o autor:

Conta oficial do WeChat:

struct vs class em C++: diferenças-chave explicadas | C++那些事

Sobre o conteúdo de struct em C e C++: veja struct那些事

Em linhas gerais, struct é mais adequado para ser visto como a implementação de uma estrutura de dados, enquanto class é mais adequado para ser visto como a implementação de um objeto.

Diferenças:

A diferença mais essencial é o controle de acesso padrão.

A permissão de acesso padrão na herança: em struct ela é public; em class, private.

Como implementação de uma estrutura de dados, struct tem, por padrão, o controle de acesso aos dados público (public), enquanto class, como implementação de um objeto, tem, por padrão, o controle de acesso às suas variáveis membro privado (private).

Perguntas frequentes

Qual a única diferença entre struct e class?

Acesso e herança padrão: struct é public, class é private. Fora isso, são totalmente equivalentes no C++.

Um struct pode ter construtores e funções virtuais?

Sim. Um struct em C++ é uma classe: suporta construtores, destrutores, funções virtuais e templates.

Quando usar struct?

Por convenção, struct para agregados de dados sem invariantes; class quando há encapsulamento ou invariantes.

Tópicos relacionados

Comentários