Professional C++ 17- Object-Oriented C++ Programming Course
What you'll learn
- Modern, Object-Oriented C++ Programming - C++ 17
- C++ 11, 14, & 17 Features
- Lambda Expressions & Functional Programming
- Test Driven Development
- Inheritance, Polymorphism, Interfaces - Good Design Technique
- Containers & Algorithms
- Basic C or C++ programming
Professional C++ - Object-Oriented C++ Programming is our intermediate C++ course. If you have completed our introduction to C++ course or have experience with C, Java, C#, or other curly brace language, this course is for you!
Why choose this course? Chuck's courses have been delivered to thousands of developers in-person, online and via Udemy, including major corporations, government agencies and military around the world.
Using lots of code examples and hands-on opportunities, Chuck guides you through all of the object-oriented programming features of C++, including new features introduced in C++ 11, C++ 14, and C++ 17. You will not only learn syntax and features, but also how to properly apply those concepts. Chuck intertwines design principles and concepts throughout the course to explain the best practices for applying what you learn.
In this course, you will learn
Class implementation, including inline, const, constructors & destructors, and code organization
Learn to implement code from Test Driven Development unit test specifications
Memory management, including pointers, references, move & copy constructors
Exceptions - all about error handling including exception strategies
Operator Overloading - learn all about required and optional operator implementation
Templates - learn to use and create your own function templates and class templates, including new variadic templates and parameter folding
Smart Pointers - Avoid memory leaks and learn to build safe applications using the RAII strategy with unique pointers, shared pointers and weak pointers
Inheritance - Learn to properly achieve good inheritance relationships and leverage this powerful object-oriented concept including overriding functions, construction & destruction
Polymorphism - Become an expert at leveraging polymorphism to eliminate design smells and understand the costs and benefits of polymorphism
Interfaces - You will understand the meaning and purpose of interfaces in a great design, including interface segregation and dependency inversion
Functional Programming - Learn all the new features of C++ supporting functional programming and Inversion of Control
Lambda Expressions - Gain expertise not only in lambda syntax, but also how and when to use lambdas in your application.
Containers - Get an overview of the standard library containers (STL) and learn the best strategies for choosing and leveraging containers. This section includes new features like ranged for, algorithms and numeric functional features in modern C++.
Library Utilities - You will learn all about utilities classes and functions in C++ like tuples, pairs, date & time
Design Patterns - throughout the class, Chuck demonstrates the implementation of GOF design patterns
At the conclusion of this course, programmers will be ready to contribute to C++ projects in a meaningful way, armed with an in-depth understanding of object-oriented programming and the nuances of C++
Who this course is for:
- Beginner C/C++ programmers wanting to learn more
- Java developers wanting to learn C++
- C# developers wanting to learn C++
Chuck is a professional software developer with over 30 years of experience. He began his career developing C applications for a large client in the financial industry.
In 1989, Chuck joined IBM developing and testing APIs for a large project. Most of this work was in C++.
In 1992, Chuck started McCullough & Associates, a professional services and training organization. Since then, M&A has provided development and training services to companies, governments, and universities around the world.
As a software architect, Chuck is proficient in Java, C#, C++ and many other languages and platforms. He is a strong practitioner of best practices, such as test-driven, iterative, pattern rich object-oriented application development.
Chuck has trained thousands of developers all over the world.