PRACTICAL PROGRAMMING IN C++, 2nd edition