Professional_Cpp_3rd_edition.pdf

(12683 KB) Pobierz
PROFESSIONAL C++
INTRODUCTION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
xli
PART I
CHAPTER 1
CHAPTER 2
CHAPTER 3
INTRODUCTION TO PROFESSIONAL C++
A Crash Course in C++ and the STL . . . . . . . . . . . . . . . . . . . . . . . . . . 3
Working with Strings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
Coding with Style . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
PART II
CHAPTER 4
CHAPTER 5
CHAPTER 6
PROFESSIONAL C++ SOFTWARE DESIGN
Designing Professional C++ Programs . . . . . . . . . . . . . . . . . . . . . . . 79
Designing with Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
Designing for Reuse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
PART III
CHAPTER 7
CHAPTER 8
CHAPTER 9
CHAPTER 10
CHAPTER 11
CHAPTER 12
CHAPTER 13
CHAPTER 14
CHAPTER 15
CHAPTER 16
CHAPTER 17
CHAPTER 18
CHAPTER 19
CODING THE PROFESSIONAL WAY
Gaining Proficiency with Classes and Objects . . . . . . . . . . . . . . . . . 143
Mastering Classes and Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177
Discovering Inheritance Techniques . . . . . . . . . . . . . . . . . . . . . . . . . 217
C++ Quirks, Oddities, and Incidentals . . . . . . . . . . . . . . . . . . . . . . . 273
Writing Generic Code with Templates . . . . . . . . . . . . . . . . . . . . . . . 315
Demystifying C++ I/O . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 345
Handling Errors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 369
Overloading C++ Operators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 411
Overview of the C++ Standard Library . . . . . . . . . . . . . . . . . . . . . . 443
Understanding Containers and Iterators . . . . . . . . . . . . . . . . . . . . . 467
Mastering STL Algorithms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 531
String Localization and Regular Expressions . . . . . . . . . . . . . . . . . . 575
Additional Library Utilities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 601
PART IV MASTERING ADVANCED FEATURES OF C++
CHAPTER 20
CHAPTER 21
CHAPTER 22
CHAPTER 23
Customizing and Extending the STL . . . . . . . . . . . . . . . . . . . . . . . . 627
Advanced Templates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 673
Memory Management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 707
Multithreaded Programming with C++ . . . . . . . . . . . . . . . . . . . . . . 741
PART V
CHAPTER 24
CHAPTER 25
CHAPTER 26
APPENDIX A
APPENDIX B
APPENDIX C
C++ SOFTWARE ENGINEERING
Maximizing Software Engineering Methods . . . . . . . . . . . . . . . . . . 781
Writing Efficient C++ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 801
Conquering Debugging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 827
C++ Interviews . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 863
Annotated Bibliography . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 885
Standard Library Header Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 895
INDEX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
903
Professional
C++
Zgłoś jeśli naruszono regulamin