C++: Effective Object-Oriented Software Construction