Autor: Vitaly Buturlin
Conteúdo:
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