RAII & The Rule of Three
Dynamic Memory and Iterators
Inheritance
Operator Overloading & Templates
Composition & Exceptions
100

The practice of allocating memory when an object is initialized, and freeing memory when an object is destroyed

What is RAII (Resource Allocation is Initialization)?

100

The expression used to grab the address of a variable

&

100

The class from which other classes may be derived and inheriting from 

What is the base class?

100

+, -, ==, &&, +=, !, and % can all be defined as this tool

What are operators?

100

Keyword that allows others to access an object's state, but are unable to modify it.

What is const?

200

"~<Class Name>()" is the syntax for this function

What is a Destructor?

200

What expression is used to point an iterator at the beginning of a vector? 

"vector name".begin()

200

The modifier that only allows the base class and its inherited classes to have access to its functions 

What is Protected?

200

The syntax for creating an operator overload is

What is operator with your operator symbol right after: operator"symbol"

200

The three keywords used for error exception handling

What are throw, try, and catch?

300

This occurs when dynamic memory is allocated, but the data is never deleted

What is a memory leak?

300

The virtually unlimited memory space where access to data may be slower

What is the heap?

300
A class that inherits a base class' member variables and functions (even its default constructor)

What is a derived class?

300

A tool that enables programmers to write classes that work, generically, with multiple data types

What is a class template?

300

This term specifies what conditions should be true over the course of an object's lifetime 

What is a class invariant 

400

The default copies of pointers, which refer to the original object

What is a shallow copy?

400

Given a "fruit" vector, insert "grapes" between "pear" and "banana": 

<“watermelon”, “apple”, “pear”, “banana”, “tomato”>  

fruit.insert(fruit.begin() + 3, "grapes");

400

The process in which a derived class takes a function that is previously established in the base class, but then redefines it.

What is overriding?

400

The pointer that points to the current instance of a class. It is typically found in a copy assignment

What is *this?

400

Exception that is thrown when errors arise because of an argument value is not accepted as a valid input

std::invalid_argument

500

If you define one, your class requires all three of these functions:

What is a destructor, a user defined copy constructor, and a user defined copy assignment operator? (The Rule of Three)

500

Given the code, what does intPointer increment?

int myInt = 10;

int* intPointer = &myInt;

intPointer++;

The address of intPointer is incremented and not myInt

500

The syntax derived classes use to call their respective base class functions

<Base class>::<member function name>(<parameters>) 

500

What is the syntax of the data type placeholder found in template creation?

What is template <typename T>?

500

A type of exception that's thrown when an element cannot be found within a dictionary/vector, or tying to access an index that does not exist

std::out_of_range

M
e
n
u