Patterns in Software - C++