Practical C++ Programming, Second Edition