Programming: principles and practice using C++ - Stroustrup, Bjarne (Addison-Wesley Professional, 2014)