Die C++ Core Guidelines bündeln Regeln für Konstruktoren und die übrigen Standardoperationen eines Objekts. Im Abschnitt C.ctor der offiziellen Guideline-Sammlung geht es darum, wie Klassen ihren gültigen Zustand bei der Erzeugung sicher herstellen.
Die 13 Konstruktionsregeln reichen von C.40 bis C.52. Eine Klasse mit einer Invariante soll einen Konstruktor definieren, der diese Bedingung herstellt. Kann ein gültiges Objekt nicht erzeugt werden, soll der Konstruktor einen Fehler signalisieren, statt ein unbrauchbares Objekt zurückzulassen.
Initialisierung statt nachträglicher Reparatur
C.41 verlangt ein vollständig initialisiertes Objekt. Die Guidelines empfehlen außerdem, Datenmember in ihrer Deklarationsreihenfolge zu initialisieren und Initialisierung nicht erst im Konstruktor-Rumpf über Zuweisungen nachzuholen. Default-Member-Initialisierer können einfache Standardwerte direkt an der Memberdeklaration festlegen.
Weitere Regeln betreffen einfache und nicht auslösende Default-Konstruktoren, explizite Konstruktoren mit einem Argument sowie delegierende und geerbte Konstruktoren. Bei Ressourcen verweist die Sammlung auf RAII: Besitz wird im Objekt gebunden und beim Ende seiner Lebensdauer zuverlässig freigegeben.
Für Engine-, Werkzeug- und Gameplay-Code sind diese Regeln vor allem bei langlebigen C++-Klassen relevant. Sie machen Zustände und Besitzverhältnisse schon an der Schnittstelle sichtbar. Der ältere Beitrag zur Philosophie der C++ Core Guidelines beschreibt die übergeordneten Ziele der Sammlung. Microsoft dokumentiert außerdem den C++ Core Guidelines Checker in Visual Studio 2017 als Werkzeug für ausgewählte Prüfungen.

