Demonstrated knowledge of the following concepts via building small programs surrounding such topics. Basics of Compilers in relationship to C++ compilation to object and machine code via makefile scripting. Basics of Algorithmic Design - Essentially how to design a sequence of precise instructions that leads to a solution.
General principles of object-oriented programming design
- Encapsulation: Objects combine data and operations.
- Inheritance: Classes can inherit properties from other classes.
- Polymorphism: Objects can determine appropriate operations at execution time.
- Throw Statement
- Catch Block
- Try Block
- Catching Multiple Exceptions Throwing an Exception in a Function Exception Specification
- Exception Specification in Derived Classes When to throw an Exception
- Nested try-catch blocks
- Exception Class Hierarchies
- Testing for Available Memory Re-throwing an Exception
std::runtime_error
- Free-store Basics
- Recursion
- Classes
- Defining Classes and Member Functions Properties of Public and Private Members Constructors for Initialization
- Default Constructor
- Constructors with No Arguments
- Member Initializers and Constructor Delegation
- Arrays as Class Members
- Pointers of Class Type
- Class Implementation
- Class Interface
- Destructors
- Pointers as Call-by-Value Parameters Copy Constructors
- Operator Overload
- Nodes
- nullptr
- Linked Lists
- Searching a Linked Lists
- Pointers as Iterators
- Inserting and Removing Nodes Inside a List Structures
- Linked Structors Node Pointers
- Derived Classes
- Defining Derived Classes Constructors in Derived Classes
- Redefining an Inherited Function
- Implementation for a Derived Class
- Overloading an Inherited Function Function Signature
- Class Assignment Operator application
- Copy Constructors in Derived Classes Destructors in Derived Classes
- The const Parameter Modifier
- Virtual Functions
- Interface & Implementation for Base Classes Use of Virtual Functions
- Overriding
- Polymorphism
- Late Binding
- Stack Classes
- Queues
- Interface for Queue Class Implementation for Queue Class Queue Class
push()
,pop()
,peak()
,empty()
- Last-in/first-out Data Structure Interface for Stack Class- Stack Class Implementation
->
Operator- Front of the List
- Back of the List
- Templates for Algorithm Abstraction
- Templates for Functions
- A Template overloads a Function Name
- Templates with more than one type parameter
- How to Define Templates
- Function Template Declaration and Definition
- Algorithm Abstraction
- Type Parameters for Function Templates
- Declaring Objects after a Class Template is Defined
- Syntax for Class Templates
- Defining member functions for a Class Template
- Class Template Definition, Declaration
- Type Definitions
- Interface for Class Template
- Implementation for Class Template
- Interface for Class Template without Implementation Implementation of Class Templates with Overloaded Operators