Practical C++ by Mark A Terribile