@bthight sagte in Frage zur Schreibweise innerhalb einer Klasse: Wenn ich die Box mit folgendem Code schreibe: Box(int w=2, int l=4, int h=6): width{w},length{l},height{h} {} Habe ich die Box auch per Default Konstruktor belegt? Nein, der Default Konstruktor wird immer mit leerer Argumentsliste definiert und auch aufgerufen. Wenn dieser nicht vorhanden ist, und wie hier ein Konstuktor mit drei Argumenten, die jeweils ein Default haben, definiert wird, dann wird nicht der Default Konstruktor sondern der Konstruktor mit den drei Defaults aufgerufen. Defaults sind nur bedingt sinnvoll, und man muss bei Konstruktoren noch auf einen besonderen Aspekt hinweisen. Konstruktoren mit einem Argument (oder Konstruktoren mit mehreren Default Werten, die nur mit einem expliziten Argument aufgerufen werden können) funktionieren als Konversionkonstruktor. Beispiel const short s = -1; Box bb(1,2,3); bb = s; Was passiert in Zeile drei? Die short Variable s wird in ein int konvertiert, und das lässt sich dank Deines Konstuktors mit Defaults in eine Box konvertieren. Damit man das ausschließen kann, gibt es dann Schlüsselwort explicit, damit wird die ungewollte Konversion verhindert.