Object-Oriented Software in C++