Object-Oriented Programming Using C++, Second Edition