Design patterns in C++