Verfasser: Vitaly Buturlin
Inhalt:
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