Skip to content

CT 301 Exam 1: Supplementary

CT 301: C++ Fundamentals · Summer 2026
Exam 1: Supplementary
Additional material to study for Exam 1.
Topic learncpp.com
Lecture 1: Hello World, Objects, Types, Values
Variable initialization (copy, direct, brace; narrowing) 1.4 Variable assignment and initialization
Fundamental data types (int, double, char, bool) 4.1 Introduction to fundamental data types
Literals and literal suffixes (u, l, f, L) 5.2 Literals
Type deduction with auto 10.8 Type deduction for objects using the auto keyword
Lecture 2: Functions, Scope, Constants, Pointers/References
const variables and named constants 5.1 Constant variables (named constants)
Constant expressions and constexpr variables 5.5 Constant expressions and 5.6 Constexpr variables
Lvalue references (basics, binding, why they can't be reseated) 12.3 Lvalue references
Lvalue references to const 12.4 Lvalue references to const
Pointers (introduction, dereferencing, null) 12.7 Introduction to pointers
Pointers and const (const int* vs int* const) 12.9 Pointers and const
Lecture 3: User-Defined Types and Modularity
Unscoped enumerations (plain enum) 13.2 Unscoped enumerations
Scoped enumerations (enum class) 13.6 Scoped enumerations (enum classes)
Introduction to classes; public vs private members 14.2 Introduction to classes and 14.5 Public and private members and access specifiers
Header files, header guards, and the One Definition Rule 2.11 Header files and 2.12 Header guards
Lecture 5: Functions in depth
Function declarations vs definitions; forward declarations 2.7 Forward declarations and definitions
Pass by const lvalue reference 12.6 Pass by const lvalue reference
Function overloading (overload resolution, what can differ) 11.1 Introduction to function overloading and 11.2 Function overload differentiation
Returning values from functions (by value, by reference) 12.12 Return by reference and return by address
Lecture 6: Classes and class design
Constructors and member initializer lists 14.9 Constructor member initializer lists
Introduction to inheritance 24.1 Introduction to inheritance
Virtual functions and dynamic dispatch (including override) 25.2 Virtual functions and 25.3 The override and final specifiers
Virtual destructors (why and when) 25.4 Virtual destructors, virtual assignment, and overriding virtualization
Pure virtual functions and abstract base classes 25.7 Pure virtual functions, abstract base classes, and interface classes
Smart pointers and move semantics (HW#1 ownership)
Introduction to smart pointers and move semantics 22.1 Introduction to smart pointers and move semantics
std::move 22.4 std::move
std::unique_ptr 22.5 std::unique_ptr