C++ how to program - H M Deitel (Prentice-Hall, 1994)
The book is divided into several major parts. The first part, Chapters 1 through 5, presents a thorough treatment of procedural programming in C++ including data types, input/output, control structures, functions, arrays, pointers, and strings. The second, Chapters 6 through 8, presents substantial treatment of data abstraction with classes, objects, and operator overloading. The third part, Chapters 9 through 10, presents inheritance, virtual functions, and polymorphism - the root technologies of true object-oriented programming. The next part, Chapters 11 through 14, presents C++-style, steam oriented input/output, including using stream I/O with the keyboard, the screen, files, and character arrays. The next part, Chapter 15, presents a thorough treatment of dynamic data structures such as linked lists, queues, stacks, and trees. The last part, Chapters 16 through 18, discusses a variety of topics including bit, character, and string manipulation. Finally, there are appendices on C++ syntax, the standard function libraries, operator precedence, the ASCII character set, number systems (binary, decimal, octal, and hexadecimal), and C++ sources (such as consortia, journals, and companies that make various key C++-related products). The book concludes with a detailed index