Software Development

C++ Programming

Overview

This course is an introduction to the C++ programming language. Emphasis is placed on best, current practices and methods. Students will write extensive code as part of the course.

Who Should Take This Course

Audience

This course is suitable for developers or others with some experience in programming. This course is not designed for students who are new to programming.

Prerequisites

Students should have completed our Python Programming class or have equivalent experience with another programming language. They should be able to write conditionals, loops, and functions, do some basic debugging, and write a simple program that makes use of these skills.

Why You Should Take This Course

Upon completion of this course, the student will be able to:

  • Explain how OO software engineering enhances the software development process.
  • Identify the major elements in an object-oriented programming language.
  • Implement the concepts of data abstraction and encapsulation in abstract data types.
  • Implement operator overloading.
  • Use inheritance in C++.
  • Select the proper class protection mechanism.
  • Demonstrate the use of virtual functions to implement polymorphism.
  • Write programs utilizing the I/O classes in C++.
  • Understand C++ features including templates, exceptions, and multiple inheritance.
  • Compare the object vs the procedural approach to writing software.
  • Use correct object oriented terminology.
  • Define and use classes in a C++ program.
  • Create and use abstract data types.
  • Derive classes using inheritance in C++.
  • Implement polymorphism by using virtual functions in a program.

Course Outline

C++ Programming

Introduction

  • C++
  • History
  • Hello, World
  • C++ Errors
  • C++ Style

Building Programs

  • The Build Process
  • The Build Pipeline
  • Building a Large Program

Variables

  • C++ Variables
  • Fundamental Types
  • Standard Library Types
  • Strings
  • Aggregate Types
  • Type Storage Duration Specifiers
  • Type Qualifiers
  • Constexpr

Variable Operations

  • Assignment
  • Arithmetic Operators

Standard Types

  • Standard Library Containers
  • Pairs and Tuples
  • Enumerated Values

Flow Control

  • Conditionals
  • Loops
  • Loop Control
  • Switch-case

Input/Output Streams

  • Output
  • Formatted Input
  • Processing User Input
  • Formatted File I/O
  • main Revisited

Functions

  • Invoking Functions
  • Creating Functions
  • Header Files

References and Pointers

  • References

Custom Types

  • Access Specifiers
  • Methods
  • The this Pointer
  • Constructors
  • Destructor
  • static Members

Inheritance

  • Inheriting Fields and Methods
  • Access Specifiers
  • Polymorphism
  • Virtual Methods
  • Abstract Types

Exceptions

  • Catching Exceptions
  • Custom Exception Types
  • Exception Signatures for Functions
  • Standard Library Exceptions
  • Exception Guarantees

Operator Overloading

  • Operators as Methods
  • The Spaceship Operator <=>
  • Overloading Stream Operator <<
  • Iterators
  • Iterator Classifications
  • Creating and Using Iterators

Namespaces

  • Creating namespaces
  • using Namespaces
  • Argument-Dependent Lookup

Templates

  • Template Constraints
  • Templated Types
Search UMBC Training Centers