Concepts d'analyse: type trivial, mise en page standard, POD

Auteur: Vitaly Buturlin





Contenu:





  • 1. Classe triviale





  • 2. Disposition standard





  • 3. POD





  • 4. Facultatif





Classe triviale

Les classes triviales  ( La classe triviale ) - est une classe ou une structure dans laquelle les fonctions membres spéciales fournies par le compilateur (évidemment il n'y a pas mise en œuvre) ou explicitement défini comme un défaut. Il n'y a pas de code de contrôle dans une telle classe  , car les fonctions membres spéciales sont déclarées (explicitement ou implicitement) comme triviales par défaut.





De plus, il y a des exigences supplémentaires, la classe triviale ne doit pas avoir:





  • fonctions virtuelles





  • classes de base non triviales





  • types de données non triviaux





Le mot «trivial» signifie la présence de:





  • fonctions membres spéciales triviales ( msdn )





  • Membres POD (voir ci-dessous)





Les classes triviales peuvent être copiées en toute sécurité avec des fonctions comme memcpy en toute précision.





La trivialité des fonctions membres (absence de code de contrôle) implique:





  • allocation de mémoire pour un objet sans initialisation





  • copie d'octets d'un objet





  • libérer de la mémoire sans nettoyer





Disposition standard

Structure standard  ( disposition standard ) - une structure (struct), qui contient l'accessibilité C ++:





  • fonctions virtuelles et classes de base virtuelles





  • plusieurs niveaux d'accès (privé, protégé)





  • membres non statiques d'un type de référence





Structure standard:





  • n'a aucun membre non standard





  • n'a pas de classes de base qui ne sont pas une structure non standard





  • n'a pas plus d'une classe de base avec des membres de données non statiques





  • n'a pas deux emplacements pour déclarer des membres non statiques (par exemple, dans la classe de base et en elle-même)





  • n'a pas plus de deux classes de base (ou indirectement)





La structure standard a une  structure de mémoire prévisible , car elle ne contient pas de données que le compilateur pourrait structurer à sa propre discrétion (par exemple, dans le cas de public / privé / protégé) - à la  fois écrites et stockées en mémoire .









Auteur: Vitaly Buturlin





Une source








All Articles