Analysekonzepte: Trivialtyp, Standardlayout, POD

Verfasser: Vitaly Buturlin





Inhalt:





  • 1. Trivial Klasse





  • 2. Standardlayout





  • 3. POD





  • 4. Optional





Trivial Klasse

Trivial Klassen  ( Die triviale Klasse ) - ist eine Klasse oder Struktur , in der die speziellen Mitgliederfunktionen durch den Compiler zur Verfügung gestellt (natürlich gibt es keine Umsetzung) oder explizit als Standard definiert. In einer solchen Klasse gibt es  keinen Steuercode , da spezielle Elementfunktionen (explizit oder implizit) standardmäßig als trivial deklariert werden.





Darüber hinaus gibt es zusätzliche Anforderungen, die die Trivialklasse nicht haben darf:





  • virtuelle Funktionen





  • nicht triviale Basisklassen





  • nicht triviale Datentypen





Das Wort "trivial" bedeutet das Vorhandensein von:





  • triviale spezielle Mitgliedsfunktionen ( msdn )





  • Mitglieder POD (siehe unten)





Trivialklassen können mit Funktionen wie memcpy mit voller Genauigkeit sicher kopiert werden.





Die Trivialität der Mitgliedsfunktionen (fehlender Kontrollcode) impliziert:





  • Speicherzuordnung für ein Objekt ohne Initialisierung





  • Byte-Kopieren eines Objekts





  • Speicher freigeben ohne zu reinigen





Standardentwurf

Standardstruktur  ( Standardlayout ) - Eine Struktur (Struktur), die Barrierefreiheit C ++ enthält:





  • virtuelle Funktionen und virtuelle Basisklassen





  • mehrere Zugriffsebenen (privat, geschützt)





  • Nicht statische Elemente eines Referenztyps





Standardstruktur:





  • hat keine nicht standardmäßigen Mitglieder





  • hat keine anderen Basisklassen als eine nicht standardmäßige Struktur





  • hat nicht mehr als eine Basisklasse mit nicht statischen Datenelementen





  • hat keine zwei Stellen zum Deklarieren nicht statischer Elemente (z. B. in der Basisklasse und an sich)





  • hat nicht mehr als zwei Basisklassen (oder indirekt)





Die Standardstruktur hat eine  vorhersehbare Speicherstruktur , da sie keine Daten enthält, die der Compiler nach eigenem Ermessen strukturieren könnte (z. B. im Fall von öffentlich / privat / geschützt) -  sowohl geschrieben als auch im Speicher gespeichert .









Verfasser: Vitaly Buturlin





Eine Quelle








All Articles