- Bring this or any training to your organization
Full-scale program development
- Delivered when, where, and how you want it
- Blended learning models
- Tailored content
- Expert team coaching
C++ Best Practices and Design Patterns Training
Course 397
- Duration: 4 days
- Labs: Yes
- Language: English
- Level: Intermediate
The ability to leverage the work of others, avoid pitfalls, and apply proven idioms and patterns can greatly improve the effectiveness of programming efforts. In this C++ Best Practices and Design Patterns course, you learn to increase productivity by combining tools, idioms, syntax, and libraries to produce industrial-strength C++ code. Numerous hands-on exercises provide real-world experience in developing high-quality C++.
Train your whole team by bringing this course to your facility
In-Person
Online
C++ Training Course Information
In this C++ training course, you will:
- Design and implement efficient object-oriented solutions using C++.
- Improve code quality using design patterns.
- Modify a poorly structured application to increase flexibility, robustness, and efficiency.
- Build robust libraries using namespaces, templates, and exceptions.
Prerequisites
You should have a basic knowledge of C++ programming. You should understand the following concepts as implemented in C++:
- Classes and objects
- Inheritance
- Polymorphism or virtual functions
- Function overloading
- Six months' full-time C++ programming experience
C++ Best Practices and Design Patterns Course Outline
OO fundamentals
- Inheritance, encapsulation and polymorphism
- Classes, objects, and attributes
- Associations, messages and methods
- Interfaces and abstract classes
Using the Unified Modeling Language
- Characteristics of UML
- Mapping UML into C++
Exploiting development tools
- Automating the life cycle with CASE tools
- Code generation and reverse engineering
- Debuggers and browsers
Introducing design patterns
- The motivation for design patterns
- Categories of patterns: creational, behavioral, and structural
- Describing design patterns
Putting patterns to work
- Synchronizing multiple views with the Observer pattern
- Handling recursive data structures with the Composite pattern
- Minimizing code duplication with the Template Method pattern
- Managing object creation with the Singleton pattern
- Decoupling object creation with Factory pattern
- Separating algorithms from data structures with the Visitor pattern
The Standard Template Library (STL)
- The structure of the STL
- Declaring and populating sequence and associative containers
- Accessing containers using iterators
- Applying standard and user-supplied algorithms
- Using function object and lambda expressions
The iostream library
- Basic input/output
- Formatting textual output
- Handling errors in input data
- Wide character types and internationalization
The thread library
- Creating and managing threads
- Handling exclusive access to shared data
Managing memory
- Recognizing and reducing memory overhead
- Preventing memory leaks with the unique_ptr and shared_ptr templates
- Overloading operator new and operator delete
- Writing and using smart pointers
File storage
- Preparing classes for simple file storage
- Storing and retrieving objects using Boost serialization libraries
Increasing reusability
- Avoiding name clashes using namespaces
- Using templates for type-safe reusability
Improving robustness and efficiency
- Strengthening encapsulation by consistent and appropriate use of const
- Sharing state between lightweight objects
- Understanding r-value references and move semantics
Things you need to do — and why
- Virtual destructors
- Assignment operators and copy constructors
Features to handle with care
- Friends vs. public members
- Runtime-type information vs. virtual member functions
- Multiple and virtual inheritance
Need Help Finding The Right Training Solution?
Our training advisors are here for you.
Course FAQs
Learning Tree provides Private Team Training that can save time and travel costs by training your entire team at once, at a convenient location of your choice. We handle all the details including instructor travel, tailored content, comprehensive course materials, shipping and equipment setup and teardown.