Thinking in C++ - Eckel Bruce Au. (2000)