What are the more difficult parts of the C++ programming language to learn?
What is difficult depends on your background. For most, the hardest part of learning C++ is to look up from the programming language constructs and focus on concepts in the application. That is, to learn to think abstractly and to design with a focus on classes rather than on sequences of operations. I tackle this tricky problem by presenting each feature of the C++ language in the context of its use. For key C++ facilities – such as classes and class hierarchies – I accompany the discussion of what the language offers with a discussion of the design techniques the features exist to support. Each chapter has a final section summarizing the recommendations found in that chapter as a list of one-line pieces of advice (with references back to the more extensive discussion in the text). My expectation is that novice C++ programmers will use these rules of thumb to guide their initial use of C++. Experienced C++ programmers will use the pieces of advice to determine what is new in C++ progr