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 | | Fixed-width integers |
|
Appendix B | | C++11 (Formerly C++0x) |
| B.1 | | Introduction to C++11 |
| B.2 | | Long long, auto, decltype, nullptr, and enum classes |
| B.3 | | Range-based for statements and static_assert |
| B.4 | | Initializer lists and uniform initialization |
| B.5 | | Delegating constructors |
| B.6 | | New virtual function controls (override, final, default, and delete) |
0 comments:
Post a Comment