Multi-Paradigm Programming Using C++ by Dirk Vermeir