C++ Programming Training

Upcoming Instructor Led Online and Public C++ Programming classes
C++ Programming 8 July, 2019 - 12 July, 2019 $2090 Hartmann Software Group Training Registration

Answers to Popular Questions:

 
Yes, this class can be tailored to meet your specific training needs.
Yes, we provide C++ consulting services.
Yes, group discounts are provided.

Course Description

 
Develop the ability to design and write programs in the C++ language, emphasizing object-oriented approaches to designing solutions.
Course Length: 5 Days
Course Tuition: $2090 (US)

Prerequisites

C Programming

Course Outline

 

Classes
Creating a Data Structure
Methods
Object Scope
C++ Input and Output
Namespaces
Data Abstraction
Enforcing Data Encapsulation
File Organization
Classes in C++
Objects
this Pointer

Constructors and Destructors
Debug Output
The Default Constructor
When are Constructors Called?
The Destructor
The Copy Constructor
Other Constructors
Why did it work before?
Composition
The Report Class
Code Reuse
Initialization Lists

Inheritance
Inheritance
Bugreport
Protected Access Modifier
Access and Inheritance
Constructors and Inheritance
Initialization Lists Revisited
Multiple Inheritance

Virtual Functions
Inheritance and Assignment
Inside Report's Assignment Operator
Using Pointers - a Quick Look at Basics
Class Assignment and Pointers
Static Binding
Dynamic Binding
Polymorphism
The show_rep() Function
Using the show_rep() Function
Designing member Function Inheritance

Pure Virtual Functions
Bugfix and its Relationship with Bugreport
Bugfix: Association with Bugreport
Using Bugfix with show_rep()
Adding Bugfix to the Hierarchy
Coding for the Document Class
Reexamining the Document Class
Pure Virtual Functions
Designing Member Function Inheritance

References & Constants
References
Displaying References
Changing References
Pass by Reference
Returning by Reference
Constant Variables
Constant References
Constant Methods

new and delete
new and delete
Array Allocation
The Report Class
Compiler Version of the Copy Constructor
Guidelines for Copy Constructors
The Report Constructors and new
The Report Destructor and delete
Virtual Destructors

Casting in C++
Casting: a Review
New Casting Syntax
Creating a String Class
The String Class
The Conversion Constructor
Expanding Our Casting Options
Casting Operator
Using the Casting Operator
Class Methods and Data
Class Data
Class Methods
Using the New Data
More on Class Methods


Overloaded Functions
Function Overloading
Using Overloaded Functions
Rules for Overloading
Overloading Based on Constness
Default Arguments
Invoking Functions with Default Arguments

Overloaded Operators
The Basics of Overloading
Overloading operator+
Coping with Commutativity
Non-Commutative Operators
friends and Their Problems
The Assignment Operator
Overloading the << Operator
Using Date with cout

Exception Handling
Why Exception Handling?
try / catch / throw
Exception Classes
Standard Exception Hierarchy
Multiple catch Blocks
Catching Everything
Unhandled Exceptions
Exception in Constructors and Destructors
Designing for Exceptions

Standard Template Library
Class Template Concepts
Standard Template Library (STL) Overview
Containers
Iterators
Iterator Syntax
Non-Mutating Sequential Algorithms
Mutating Sequential Algorithms
Sorting Algorithms
Numeric Algorithms
auto_ptr Class
string Class

STL Containers
Container Classes
Container Class Algorithms
vector Class
Additional vector Class Methods
deque Class
list Class
set and multiset Classes
map and multimap Classes

Appendix A: Reference Sheets
Constants, References, and Pointers
Input/Output
this Pointer
The Complete Report/Document Hierarchy

Appendix B: Templates
Scenario
Designing an Array Class
Code for FloatArray
Code for IntArray
Templates
Templates Syntax
Using Templates
Using Classes with Templates
Additional Template Features
Standard Template Library

Appendix C: Sample Problems
Banking System
Library Card Catalog
Diagrams for Banking and Library Problems

Appendix D: Other C++ Features
Namespaces
The static_cast and reinterpret_cast operator
The dynamic_cast operator
The const_cast operator
mutable Data Members
The bool Datatype
new Operator Failure
 

Course Directory [training on all levels]

Upcoming Classes
Gain insight and ideas from students with different perspectives and experiences.

C++ Uses & Stats

C++ is Used For:
Software Development Search Engines Operating Systems Video Games
Difficulty
Popularity
Year Created
1983
Pros
Popular: 
C/C++ is everywhere. In particular, they power more technologies than we give it credit for.
 
Flexible:
C++ is a multi-paradigm coding language. This means that it supports other styles such as procedural programming as well as Object-Oriented Programming. 
 
Fast: 
Because it is compiled, C++ gains a lot of speed. and is the language of choice for some applications as an example in the finance industry, where small differences in speed in high-frequency trading platforms can make the difference between a profit or a loss.
 
Job Opportunities: 
C++ developers are high in demand. There are over 14,000 C++ open positions on linkedIn alone. 
 
Similarity to Other Languages: 
Many other languages like C, C#, and Java have very similar syntax to C++, making them easy to learn for those that already know C++.
Cons
Difficult to Learn:  
C++ syntax is complex and the standard library is small, making C++ difficult to learn for someone with little programming experience. Although, it's believed to be more difficult to learn C++ than other languages, more accurately it probably takes a bigger investment of your time and effort to learn than some other languages. 
 
Strict Syntax: 
There is not much flexibility to the syntax, so it can be difficult to write code in a readable way.
 
Little Memory Management:
C++ does very little memory management, forcing the programmer to do most of it themselves.
 
Debugging Issues:
C++ can be difficult and complex to debug when it is used for web applications. 
C++ Job Market
Average Salary
104000
Job Count
32816
Top Job Locations

New York City 
Seattle 
San Francisco 

Complimentary Skills to have along with C++

C/C++ are the grandfather of most other languages. Once you understand C syntax and (OOP) Object Oriented Programming, you're well on your way to greener pastures. 

Since the .NET development ecosystem spans a wide array of capabilities and tools, it is difficult for .NET developers to know which .NET development skills and training to pursue in order to increase their marketability — and earning potential.  For that reason, learning supplemental languages such as Java, JavaScript, Python, C/C++, and others is expected in today’s competitive skill-set driven playing field.

Interesting Reads Take a class with us and receive a book of your choosing for 50% off MSRP.