Conceitos de análise: tipo trivial, layout padrão, POD

Autor: Vitaly Buturlin





Conteúdo:





  • 1. Aula trivial





  • 2. Layout padrão





  • 3. POD





  • 4. Opcional





Aula trivial

Classes triviais  ( A classe trivial ) - é uma classe ou estrutura na qual as funções de membro especiais fornecidas pelo compilador (obviamente, não há implementação) ou explicitamente definidas como padrão. Não há código de controle em tal classe  , uma vez que as funções de membro especiais são declaradas (explícita ou implicitamente) triviais por padrão.





Além disso, existem requisitos adicionais, a classe trivial não deve ter:





  • funções virtuais





  • classes base não triviais





  • tipos de dados não triviais





A palavra "trivial" significa a presença de:





  • funções-membro especiais triviais ( msdn )





  • Membros POD (veja abaixo)





Classes triviais podem ser copiadas com segurança com funções como memcpy com precisão total.





A trivialidade das funções-membro (falta de código de controle) implica:





  • alocação de memória para um objeto sem inicialização





  • cópia de byte de um objeto





  • liberando memória sem limpar





Layout padrão

Estrutura padrão  ( layout padrão ) - uma estrutura (struct), que contém acessibilidade C ++:





  • funções virtuais e classes base virtuais





  • vários níveis de acesso (privado, protegido)





  • membros não estáticos de um tipo de referência





Estrutura padrão:





  • não tem membros que não sejam de estrutura padrão





  • não tem classes básicas que não sejam uma estrutura fora do padrão





  • não tem mais de uma classe base com membros de dados não estáticos





  • não tem dois lugares para declarar membros não estáticos (por exemplo, na classe base e em si mesma)





  • não tem mais de duas classes base (ou indiretamente)





A estrutura padrão possui uma  estrutura de memória previsível , pois não contém dados que o compilador poderia estruturar a seu próprio critério (por exemplo, no caso de público / privado / protegido) -  tanto escritos quanto armazenados na memória .









Autor: Vitaly Buturlin





Uma fonte








All Articles