Mir fällt langsam auf, obwohl ich doch die Syntax von C++ behersche ( Aussetzer mal nicht mitgezählt ) so kenne ich weniger von C++ und der Programmierung wie zuvor angenommen.
Das ist der Trick an C++ - es wird immer so weiter gehen. Jedesmal, wenn man denkt, es verstanden zu haben, lernt man etwas neues dazu.Und selbst wenn man alle grundlegenden Mechanismen kennt, lernt man neue, tolle Möglichkeiten, sie anders einzusetzen. C++ ist also eigentlich keine Sprache, von der man sagen kann, dass man sie kann oder nicht.
Zu Design-Patterns gibt es übrigens auch Bücher (
http://de.wikipedia.org/wiki/Entwurfsmuster_%28Buch%29). Man lernt auch viel, wenn man fremde Bibliotheken benutzt. Alleine wenn man die Qt-Doku liest, sieht man super, wie man Vererbung Einsetzen kann, und wie komplexe Objekthierarchien aussehen können.
Und wegen Strukt Alignment (was natürlich ebenso auf Klassen zutrifft): Ich habe mich nie für die genauen Regeln interessiert, aber ich glaube, der Compiler versucht jedes Element vernünftig auszurichten wodurch konsequenterweise eine Struktur nicht bloß 4 Byte größer werden kann, sondern mehr oder weniger beliebig viel größer (für jeden Member eben ein paar Padding-Bytes). Wichtig ist das aber nur in sehr seltenen Fällen - weswegen es man im Hinterkopf behalten sollte, aber die meiste Zeit ruhig ignorieren kann.