| Chapter 3 | 
 | Operators | 
| 
 | 3.1 | 
 | Precedence and associativity | 
| 
 | 3.2 | 
 | Arithmetic operators | 
| 
 | 3.3 | 
 | Increment/decrement operators, and side effects | 
| 
 | 3.4 | 
 | Sizeof, comma, and arithmetic if operators | 
| 
 | 3.5 | 
 | Relational operators (comparisons) | 
| 
 | 3.6 | 
 | Logical operators | 
| 
 | 3.7 | 
 | Converting between binary and decimal | 
| 
 | 3.8 | 
 | Bitwise operators | 
| 
 | 3.x | 
 | Comprehensive quiz | 
|  | 
| Chapter 4 | 
 | Variables Part II | 
| 
 | 4.1 | 
 | Blocks (compound statements) and local variables | 
| 
 | 4.2 | 
 | Global variables (and why they are evil) | 
| 
 | 4.3 | 
 | File scope and the static keyword | 
| 
 | 4.4 | 
 | Type conversion and casting | 
| 
 | 4.5 | 
 | Enumerated types | 
| 
 | 4.6 | 
 | Typedefs | 
| 
 | 4.7 | 
 | Structs | 
|  | 
| Chapter 5 | 
 | Control Flow | 
| 
 | 5.1 | 
 | Control flow introduction | 
| 
 | 5.2 | 
 | If statements | 
| 
 | 5.3 | 
 | Switch statements | 
| 
 | 5.4 | 
 | Goto statements | 
| 
 | 5.5 | 
 | While statements | 
| 
 | 5.6 | 
 | Do while statements | 
| 
 | 5.7 | 
 | For statements | 
| 
 | 5.8 | 
 | Break and continue | 
| 
 | 5.9 | 
 | Random number generation | 
|  | 
| Chapter 6 | 
 | Arrays, Strings, Pointers, and References | 
| 
 | 6.1 | 
 | Arrays (Part I) | 
| 
 | 6.2 | 
 | Arrays (Part II) | 
| 
 | 6.3 | 
 | Arrays and loops | 
| 
 | 6.4 | 
 | Sorting an array using selection sort | 
| 
 | 6.5 | 
 | Multidimensional arrays | 
| 
 | 6.6 | 
 | C-style strings | 
| 
 | 6.7 | 
 | Introduction to pointers | 
| 
 | 6.8 | 
 | Pointers, arrays, and pointer arithmetic | 
| 
 | 6.9 | 
 | Dynamic memory allocation with new and delete | 
| 
 | 6.10 | 
 | Pointers and const | 
| 
 | 6.11 | 
 | References | 
| 
 | 6.12 | 
 | References vs  pointers, and member selection | 
| 
 | 6.13 | 
 | Void pointers | 
|  | 
| Chapter 7 | 
 | Functions | 
| 
 | 7.1 | 
 | Function parameters and arguments | 
| 
 | 7.2 | 
 | Passing arguments by value | 
| 
 | 7.3 | 
 | Passing arguments by reference | 
| 
 | 7.4 | 
 | Passing arguments by address | 
| 
 | 7.4a | 
 | Returning values by value, reference, and address | 
| 
 | 7.5 | 
 | Inline functions | 
| 
 | 7.6 | 
 | Function overloading | 
| 
 | 7.7 | 
 | Default parameters | 
| 
 | 7.8 | 
 | Function pointers | 
| 
 | 7.9 | 
 | The stack and the heap | 
| 
 | 7.10 | 
 | Recursion | 
| 
 | 7.11 | 
 | Namespaces | 
| 
 | 7.12 | 
 | Handling errors (assert, cerr, exit, and exceptions) | 
| 
 | 7.13 | 
 | Command line arguments | 
| 
 | 7.14 | 
 | Ellipses (and why to avoid them) | 
|  | 
| Chapter 8 | 
 | Basic object-oriented programming | 
| 
 | 8.1 | 
 | Welcome to object-oriented programming | 
| 
 | 8.2 | 
 | Classes and class members | 
| 
 | 8.3 | 
 | Public vs private access specifiers | 
| 
 | 8.4 | 
 | Access functions and encapsulation | 
| 
 | 8.5 | 
 | Constructors | 
| 
 | 8.6 | 
 | Destructors | 
| 
 | 8.7 | 
 | The hidden “this” pointer | 
| 
 | 8.8 | 
 | Constructors (Part II) | 
| 
 | 8.9 | 
 | Class code and header files | 
| 
 | 8.10 | 
 | Const class objects and member functions | 
| 
 | 8.11 | 
 | Static member variables | 
| 
 | 8.12 | 
 | Static member functions | 
| 
 | 8.13 | 
 | Friend functions and classes | 
| 
 | 8.14 | 
 | Anonymous variables and objects | 
|  | 
| Chapter 9 | 
 | Operator overloading | 
| 
 | 9.1 | 
 | Introduction to operator overloading | 
| 
 | 9.2 | 
 | Overloading the arithmetic operators | 
| 
 | 9.3 | 
 | Overloading the I/O operators | 
| 
 | 9.4 | 
 | Overloading the comparison operators | 
| 
 | 9.5 | 
 | Overloading unary operators +, -, and ! | 
| 
 | 9.6 | 
 | Overloading operators using member functions | 
| 
 | 9.7 | 
 | Overloading the increment and decrement operators | 
| 
 | 9.8 | 
 | Overloading the subscript operator | 
| 
 | 9.9 | 
 | Overloading the parenthesis operator | 
| 
 | 9.10 | 
 | Overloading typecasts | 
| 
 | 9.11 | 
 | The copy constructor and overloading the assignment operator | 
| 
 | 9.12 | 
 | Shallow vs. deep copying | 
|  | 
| Chapter 10 | 
 | Composition | 
| 
 | 10.1 | 
 | Constructor initialization lists | 
| 
 | 10.2 | 
 | Composition | 
| 
 | 10.3 | 
 | Aggregation | 
| 
 | 10.4 | 
 | Container classes | 
|  | 
| Chapter 11 | 
 | Inheritance | 
| 
 | 11.1 | 
 | Introduction to inheritance | 
| 
 | 11.2 | 
 | Basic inheritance in C++ | 
| 
 | 11.3 | 
 | Order of construction of derived classes | 
| 
 | 11.4 | 
 | Constructors and initialization of derived classes | 
| 
 | 11.5 | 
 | Inheritance and access specifiers | 
| 
 | 11.6 | 
 | Adding, changing, and hiding members in a derived class | 
| 
 | 11.7 | 
 | Multiple inheritance | 
| 
 | 11.8 | 
 | Virtual base classes | 
|  | 
| Chapter 12 | 
 | Virtual Functions | 
| 
 | 12.1 | 
 | Pointers and references to the base class of derived objects | 
| 
 | 12.2 | 
 | Virtual functions | 
| 
 | 12.3 | 
 | Virtual destructors, virtual assignment, and overriding virtualization | 
| 
 | 12.4 | 
 | Early binding and late binding | 
| 
 | 12.5 | 
 | The virtual table | 
| 
 | 12.6 | 
 | Pure virtual functions, abstract base classes, and interface classes | 
|  | 
| Chapter 13 | 
 | Input and output (I/O) | 
| 
 | 13.1 | 
 | Input and output (I/O) streams | 
| 
 | 13.2 | 
 | Input with istream | 
| 
 | 13.3 | 
 | Output with ostream and ios | 
| 
 | 13.4 | 
 | Stream classes for strings | 
| 
 | 13.5 | 
 | Stream states and input validation | 
| 
 | 13.6 | 
 | Basic file I/O | 
| 
 | 13.7 | 
 | Random file I/O | 
|  | 
| Chapter 14 | 
 | Templates | 
| 
 | 14.1 | 
 | Function templates | 
| 
 | 14.2 | 
 | Function template instances | 
| 
 | 14.3 | 
 | Template classes | 
| 
 | 14.4 | 
 | Expression parameters and template specialization | 
| 
 | 14.5 | 
 | Class template specialization | 
| 
 | 14.6 | 
 | Partial template specialization | 
|  | 
| Chapter 15 | 
 | Exceptions | 
| 
 | 15.1 | 
 | The need for exceptions | 
| 
 | 15.2 | 
 | Basic exception handling | 
| 
 | 15.3 | 
 | Exceptions, functions, and stack unwinding | 
| 
 | 15.4 | 
 | Uncaught exceptions, catch-all handlers, and exception specifiers | 
| 
 | 15.5 | 
 | Exceptions, classes, and inheritance | 
| 
 | 15.6 | 
 | Exception dangers and downsides | 
|  | 
| Chapter 16 |  | The Standard Template Library | 
| 
 | 16.1 | 
 | The Standard Template Library (STL) | 
| 
 | 16.2 | 
 | STL containers overview | 
| 
 | 16.3 | 
 | STL iterators overview | 
| 
 | 16.4 | 
 | STL algorithms overview | 
|  | 
| Chapter 17 | 
 | std::string | 
| 
 | 17.1 | 
 | std::string and std::wstring | 
| 
 | 17.2 | 
 | std::string construction and destruction | 
| 
 | 17.3 | 
 | std::string length and capacity | 
| 
 | 17.4 | 
 | std::string character access and conversion to C-style arrays | 
| 
 | 17.5 | 
 | std::string assignment and swapping | 
| 
 | 17.6 | 
 | std::string appending | 
| 
 | 17.7 | 
 | std::string inserting | 
|  | 
| Appendix A | 
 | Miscellaneous Subjects | 
| 
 | A.1 | 
 | Static and dynamic libraries | 
| 
 | A.2 | 
 | Using libraries with Visual Studio Express 2005 | 
| 
 | A.3 | 
 | Using libraries with Code::Blocks | 
| 
 | A.4 | 
 | Debugging your program (stepping and breakpoints) | 
| 
 | A.5 | 
 | Debugging your program (watching variables and the call stack) | 
| 
 | A.6 | (New) | Fixed-width integers | 
|  | 
| Appendix B | 
 | C++11 (Formerly C++0x) | 
| 
 | B.1 | (New) | Introduction to C++11 | 
| 
 | B.2 | (New) | Long long, auto, decltype, nullptr, and enum classes | 
| 
 | B.3 | (New) | Range-based for statements and static_assert | 
| 
 | B.4 | (New) | Initializer lists and uniform initialization | 
| 
 | B.5 | (New) | Delegating constructors | 
| 
 | B.6 | (New) | New virtual function controls (override, final, default, and delete) | 
 
No comments:
Post a Comment