C++ Deep Dive Training Logo

C++ Deep Dive Training

Live Online & Classroom Enterprise Training

Expert knowledge in some of the advance concepts of C++ is needed if you want to do some tricky implementations like network programming, rich user interface etc. Our course in C++ Deep Dive teaches you these concepts in high end network programming, STL and many design pattern that will be useful when you do such advance C++ implementations.

Looking for a private batch ?

REQUEST A CALLBACK

Need help finding the right training?

Your Message

  • Enterprise Reporting

  • Lifetime Access

  • CloudLabs

  • 24x7 Support

  • Real-time code analysis and feedback

What are the objectives of C++ Deep Dive Training ?

At the end of the C++ Deep Dive training course, the participants will:

  • Understand C++ Programming with greater depth
  • Implement the best practices of OO for a requirement
  • Implement Is-A and Has-A effectively
  • Implement a completely Object Oriented Solution
  • Clear understanding of separation of concerns
  • Take advantage of Python's Object-Oriented features
  • Discover abstractions and Encapsulations
  • Implement the design Patterns and Principles

What are the prerequisites for C++ Deep Dive Training?

  • Knowledge in C++
  • Basic understanding of Object Oriented Principles

Available Training Modes

Live Online Training

18 Hours

Classroom Training

3 Days

Course Outline Expand All

Expand All

  • Transition from procedural to object-oriented approach
  • The Object-oriented approach
  • Abstraction, Encapsulation and Modularity
  • Interface and implementation
  • Fundamentals of Object Oriented Approach
  • Why objects?
  • Classes & Objects - the different perspectives
  • State, Identity and Behavior
  • Abstraction
  • Encapsulation
  • Inheritance & Class Hierarchy
  • Polymorphism: Early v/s late binding
  • Object relationships
  • Application of static members
  • Objects on the heap
  • Use of this pointer
  • Overloading of Constant members
  • mutable data members
  • Constant objects
  • Overloading of static member functions
  • Compiler Synthesized Constructor
  • New vs malloc vs calloc
  • Deep copy v/s Shallow copy
  • Overloaded constructor
  • Copy constructor & Generic Copy constructor
  • Explicit constructor
  • Copy Constructor v/s Assignment operator
  • Initialization List
  • Order of Initialization
  • Initialization v/s Assignment
  • Object Cleanup - Destructor - tDelete vs Free - tCompiler Synthesized Destructor - tPreventing destroying object instance - tAvoiding dangling Pointers - tDestroying objects on the heap - tDestroying array of objects - tIssues with Dangling Pointer - tSmart pointer concept -
  • Introduction - Multiple catch blocks - tCatch all exceptions - tSet_terminate function - tSet_unexpected function - tCustion exception class -
  • Exception handling issues - Order of catch blocks - tCatching exception by value - tThrowing exception in constructor -
  • Inheritance & containment - Containment vs Inheritance - tPrivate vs protected inheritance - tHybrid Inheritance / virtual base class - tChanging scope of base member in derived class - The publicizer technique Inheritance - tThe inheritance mechanism - tTypes of inheritance - tSingle level, multi level, multiple, hierarchical, hybrid - tInheritance - is it allocation or accessibility - tThe protected access specifier - tInheritance in private, protected & public mode - tApplying Inheritance, key abstraction and dynamic binding - tConstructors & destructors in a derived class - tMultiple inheritance - tVirtual Base class - tInvoking base class constructors - tWhy a constructor is not inherited - tIs-a & Has-a relationship - tNested classes & Containership - tRuntime Polymorphism, Virtual Functions & Dynamic Binding - tPointers & Classes - tPointers to Class Members -
  • Virtual functions - Virtual member function - tLayering technique, issues related to tight-coupling and loose-coupling, avoiding transitive - tdependencies - tPure virtual function - tAbstract class v/s Interface v/s Concrete class -
  • Virtual function Issues - Calling virtual function from constructor - tCalling virtual function from destructor> - tCalling virtual function from non virtual member function - tObject Slicing - tVirtual destructor -
  • Virtual Internals - Virtual functions in Single Inheritance - tVirtual functions in Multiple Inheritance - tVirtual Inheritance -
  • Generic functions & Data abstraction
  • Function templates
  • Explicitly specialising a function template
  • Overloading Function Template
  • Using standard parameters
  • A Generic Sort algorithm
  • Generic Classes (Class template)
  • Using more than one generic type
  • Using non-type arguments & default arguments
  • Explicit Class Specializations
  • Containers - vectors - tlists - tmaps - tcontainers and exceptions - tchoosing an appropriate container -
  • Iterator Design - iterators and const_iterators - taccessing iterator information in generic algorithms - ttypes of iterators - ttinput iterator - output iterator - forward iterator - reverse iterator - random iterator - tt -
  • Generic algorithms - review: generic algorithms and helper templates - tinteraction between algorithms and iterators - ttypes of iterators - ttmutating algorithms - non mutating algorithms - tt -
  • What are design patterns? Classification
  • Creational Patterns - The Factory Pattern - tThe Singleton Pattern - tThe Abstract Factory Pattern - tSummary of Creational Patterns -
  • Structural Patterns - The Composite Pattern - tThe Bridge Pattern - tThe Decorator Pattern - tThe Adapter Pattern -
  • Behavioral Patterns - The Command Pattern - tThe Chain of responsibility Pattern - tStrategy Pattern - tThe Template Pattern -

Who is the instructor for this training?

The trainer for this C++ Deep Dive Training has extensive experience in this domain, including years of experience training & mentoring professionals.

Reviews