Thinking in C++. Volume 2 : Practical programming - Eckel, Bruce (Pearson/Prentice Hall, 2004)