by 'C++ Advanced programming techniques' Deitel & Deitel