C++ Lab 01 - Basic Program Structure

  • Introduction to Text Editors (Emacs in our case)
  • Introduction to the Command Line
  • Basic Structure of a C++ Program
  • Building and Running a C++ Program from the Command Line

C++ Lab 02 - Command Line Arguments and Strings

  • Variables, Operators and Control Structures
  • Handling C++ Command Line Arguments
  • Strings and Basic String Functions

C++ Lab 03 - C++ Functions

  • Simple C/C++ functions
  • Parameter Passing and Return Values
  • Default Parameters
  • Pass by Reference vs. Pass by Value
  • Forward Declared Functions and Functions in Separate Files

C++ Lab 04 - File I/O, Arrays and Vectors

  • C-Style Arrays
  • C-Style File Input and Formatted Output
  • C++ Vectors

C++ Lab 05 - C Structures and C++ Classes

  • C-Style Structures
  • Simple C++ Classes and Encapsulated Variables and Methods
  • Complex C++ Classes (Class Containing Other Classes)
  • Generating Random Numbers and Seeding a Random Number Generator

C++ Lab 06 - Serialization and Deserialization of C++ Classes

  • String Parsing I - Finding a Character Within a String and Generating a Substring from Another String
  • String Parsing II - Biting a String from the Front of Another String
  • String Parsing III - Parsing a String into a Vector of Strings
  • A General Deserializing Algorithm
  • Re-constructing Class Instances from Deserialized Strings from a File

C++ Lab 07 - Introduction to C++ Build Systems

  • The Relationship between Compiling and Linking in the Build Process
  • Basic Source Code Project Management
  • The Construction of Archive Libraries for Holding Code Common to Multiple Apps
  • An Introduction to Makefiles to Simplify and Quicken the Build Process
  • A Discussion of Cross-Platform Build Tools such as CMake

C++ Lab 08 - Class Inheritance in C++

  • C++ Subclasses
  • Polymorphism
  • Encapsulation
  • Function Overloading
  • Virtual Functions