Exam 1 Study Guide
You MUST present a picture ID upon turning your exam in.
Exam Date: Thursday, March 7
Use the list of topics below as a guide when studying for Exam 1. It is by
no means a comprehensive list of all topics that have been covered thus far. You
are responsible for all material presented in lecture up through operator overloading.
You are also responsible for all associated reading assignments.
- General C++ Syntax
- Stream and file I/O
- Dynamic memory allocation
- Passing by reference
- Use of symbolic constants (const)
- Recursion
- How to follow the execution of a program that contains recursive functions,
showing your work
- How to convert an iterative algorithm into a recursive one
- How to write a basic recursive function from scratch given an English description
- The difference between linear and tree recursion
- How to diagram the execution of a tree recursive function as shown in class
- The advantages and disadvantages of recursion and iteration
- What a memory map, runtime stack, and activation record (stack frame) are
- What happens in the runtime stack as a program executes
- What a stack overflow is and different causes
- ADTs, Encapsulation, and Information Hiding
- What the goals of encapsulation and information hiding are
- The difference between an abstraction and its implementation
- Procedural vs. modular vs. object-oriented abstraction models
- Object-Oriented Programming
- C++ class definition, implementation, and use syntax
- Terminology: member access specifier, object, instance, instantiation,
class scope, client program, mutator, accessor, function signature,
memberwise (shallow) copy, deep copy, utility function
- The use and syntax of constructors and destructors
- Using default arguments with constructors (how and why)
- Function overloading
- How and when to use friends
- const vs. non-const parameters, objects, and member functions
- Embedded objects (composition)
- The "this" pointer
- Operator Overloading
- How to overload a unary or binary operator
- How to overload the insertion and extraction operators
- How to decide if an overloaded operator should be a member or non-member,
friend or non-friend
- How commutativity affects the way operator overloading is implemented
- The restrictions on operator overloading