MorganBergen / CPP-Data-Structures

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. Principles of object-oriented programming design

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

C++ Data Structures

Description

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

  1. Encapsulation: Objects combine data and operations.
  2. Inheritance: Classes can inherit properties from other classes.
  3. Polymorphism: Objects can determine appropriate operations at execution time.

Exception Handling Basics

  • 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

Memory Management

  1. Free-store Basics
  2. Recursion
  3. Classes
  4. Defining Classes and Member Functions Properties of Public and Private Members Constructors for Initialization
  5. Default Constructor
  6. Constructors with No Arguments
  7. Member Initializers and Constructor Delegation

Pointers & Dynamically Allocated Arrays

  1. Arrays as Class Members
  2. Pointers of Class Type

Classes

  1. Class Implementation
  2. Class Interface
  3. Destructors
  4. Pointers as Call-by-Value Parameters Copy Constructors
  5. Operator Overload

Pointers and Linked Lists

  1. Nodes
  2. nullptr
  3. Linked Lists
  4. Searching a Linked Lists
  5. Pointers as Iterators
  6. Inserting and Removing Nodes Inside a List Structures
  7. Linked Structors Node Pointers

Inheritance

  1. Derived Classes
  2. Defining Derived Classes Constructors in Derived Classes
  3. Redefining an Inherited Function
  4. Implementation for a Derived Class
  5. Overloading an Inherited Function Function Signature
  6. Class Assignment Operator application
  7. Copy Constructors in Derived Classes Destructors in Derived Classes
  8. The const Parameter Modifier
  9. Virtual Functions
  10. Interface & Implementation for Base Classes Use of Virtual Functions
  11. Overriding
  12. Polymorphism
  13. Late Binding

Stacks and Queues

  1. Stack Classes
  2. Queues
  3. Interface for Queue Class Implementation for Queue Class Queue Class
  4. push(), pop(), peak(), empty() - Last-in/first-out Data Structure Interface for Stack Class
  5. Stack Class Implementation
  6. -> Operator
  7. Front of the List
  8. Back of the List

Templates

  1. Templates for Algorithm Abstraction
  2. Templates for Functions
  3. A Template overloads a Function Name
  4. Templates with more than one type parameter
  5. How to Define Templates
  6. Function Template Declaration and Definition
  7. Algorithm Abstraction
  8. Type Parameters for Function Templates
  9. Declaring Objects after a Class Template is Defined
  10. Syntax for Class Templates
  11. Defining member functions for a Class Template
  12. Class Template Definition, Declaration
  13. Type Definitions
  14. Interface for Class Template
  15. Implementation for Class Template
  16. Interface for Class Template without Implementation Implementation of Class Templates with Overloaded Operators

About

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. Principles of object-oriented programming design


Languages

Language:C++ 96.8%Language:Makefile 3.2%Language:C 0.0%