Cechą charakterystyczną języka C++ jest wielodziedziczenie. Jest to mechanizm, który w pewnych okolicznościach może być użyteczny, jednak wiąże się z niebezpieczeństwem – z problemem Deadly Diamond of Death1. Propozycją rozwiązania problemu jest wirtualne dziedziczenie. Problem typu diamond Problem Deadly Diamond of Death został zaprezentowany w poniższym kodzie: Kod może być przedstawiony w postaci następującego diagramu:…
Wyrównanie pamięci w C++ służy optymalizacji czasu potrzebnego do zapisu komórek pamięci rejestrach procesora. W Wikipedii można przeczytać, że: Wyrównanie pamięci jest silnie związane z architekturą procesora oraz użytym kompilatorem. W dalszych rozważaniach przyjęto architekturę x86-64 oraz kompilator g++ w wersji 15.0. Wyrównanie pamięci Rozważmy następujące struktury danych: Powyższy kod zawiera 3 struktury danych: OptimalA,…