Design Pattern  Examples in C++