Pergunta

Em C ++, porque é privada a visibilidade padrão para membros de classes, mas pública para estruturas?

Foi útil?

Solução

C ++ foi introduzido como um super conjunto de C. Structs foram transitadas de C, em que a semântica de seus membros foi o do público. Um lote inteiro de código C existe, incluindo bibliotecas que foram desejadas para trabalhar com C ++, assim, que as estruturas de uso. As aulas foram introduzidos em C ++, e em conformidade com a filosofia OO de encapsulamento, os seus membros são privados por padrão.

Outras dicas

Porque uma classe é uma forma usual de fazer orientação a objetos, o que significa que variáveis ??membro deve ser privada e ter os acessores públicos - isso é bom para a criação de baixo acoplamento . Estruturas, por outro lado, tem que ser compatível com estruturas C, que são sempre público (não há nenhuma noção de público e privado em C), e não usar acessos / mutators.

Provavelmente para compatibilidade com estruturas C. Desta forma, estruturas declarado no código C vai continuar a trabalhar da mesma maneira quando usado em código C ++.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top