Design Patterns in C++ Creational