1.1. Basic C++ Programming Elements1.1.1. A Simple C++ Program1.1.1.1. Program Elements1.1.2. Fundamental Types1.1.2.1. Characters1.1.2.2. Integers1.1.2.3. Enumerations1.1.2.4. Floating Point1.1.3. Pointers, Arrays, and Structures1.1.3.1. Pointers1.1.3.2. Arrays1.1.3.3. Pointers and Arrays1.1.3.4. Strings1.1.3.5. C-Style Structures1.1.3.6. Pointers, Dynamic Memory, and the "new" Operator1.1.3.7. Memory Leaks1.1.3.8. References1.1.4. Named Constants, Scope, and Namespaces1.1.4.1. Constants and Typedef1.1.4.2. Local and Global Scopes1.1.4.3. Namespaces1.1.4.4. The Using Statement1.2. Expressions1.2.1.1.2.1.1. Member Selection and Indexing1.2.1.2. Arithmetic Operators1.2.1.3. Increment and Decrement Operators1.2.1.4. Relational and Logical Operators1.2.1.5. Bitwise Operators1.2.1.6. Assignment Operators1.2.1.7. Other Operators1.2.1.8. Operator Precedence1.2.2. Changing Types through Casting1.2.2.1. Traditional C-Style Casting1.2.2.2. Explicit Cast Operators1.2.2.3. Static Casting1.2.2.4. Implicit Casting1.3. Control Flow1.3.1.1.3.1.1. If Statement1.3.1.2. Switch Statement1.3.1.3. While and Do-While Loops1.3.1.4. For Loop1.3.1.5. Break and Continue Statements1.4. Functions1.4.1. Argument Passing1.4.1.1. Constant References as Arguments1.4.1.2. Array Arguments1.4.2. Overloading and Inlining1.4.2.1. Function Overloading1.4.2.2. Operator Overloading1.4.2.3. In-line Functions1.5. Classes1.5.1. Class Structure1.5.1.1. Access Control1.5.1.2. Member Functions1.5.1.3. In-Class Function Definitions1.5.2. Constructors and Destructors1.5.2.1. Constructors1.5.2.2. Initializing Class Members with Initializer Lists1.5.2.3. Destructors1.5.3. Classes and Memory Allocation1.5.4. Class Friends and Class Members1.5.4.1. Nesting Classes and Types within Classes1.5.5. The Standard Template Library1.5.5.1. Templates and the STL Vector Class1.5.5.2. More on STL Strings1.6. C++ Program and File Organization1.6.1.1.6.1.1. Source Files1.6.1.2. Header Files1.6.2. An Example Program1.6.2.1. The CreditCard Class1.6.2.2. The Main Test Program1.6.2.3. Avoiding Multiple Header Expansions1.7. Writing a C++ Program1.7.1. Design1.7.2. Pseudo-Code1.7.3. Coding1.7.3.1. Readability and Style1.7.4. Testing and Debugging1.7.4.1. Testing1.7.4.2. Debugging1.8. Exercises1.8.1. Reinforcement1.8.2. Creativity1.8.3. Projects1.9. Chapter Notes