Online
eAge Technologies Learning Modern C++ Functional Programming eAge Technologies
  • Duration / Course length: Upto 24 Hours Start now
  • Course delivery: This course is delivered in video format

Course details

24 hours real time session + 10 hours monitored hands-on

Ideal For: The course is intermediate to advanced in proficiency. It is suitable for the following:

  • Programmers new in the area of Software Engineering that uses C++
  • Developers embarking on projects using C++‐based techniques for their projects
  • Professionals looking forward to upgrade the knowledge to apply skills

Post course benefits: Lifetime access to online repository, Mock interview support, project support

Recruitment support: eAgeIT will propose candidates of this program for any open opportunities with its client portfolio. We do not guarantee placement. This will be purely merit based support.

Course Objectives:

  • To understand C++ internals with proven examples
  • Would be able to apply C++ skills to construct code for their project
  • Get an insight to develop C++ software in a systematic manner
  • Would be able to user C++ 11 & 14 & 17 extensions in software
  • Would be able to write secured code that cannot be easily exploited
  • Get an understanding of robust software design in C++

Pre-Requisites:

  • Delegates are desired to be aware of OOPS principals but it is not a mandatory

Detailed Coverage:

C++ Introduction Timeline

  • Features of C++ (Revision)
  • Goals for C++ and TR11/14/17
Build Essentials in C++ 

  • Monolithic build, scope, and translations to executables
  • Std 11/14/17 switchs and __cplusplus
  • Separately Translated Program and monolithic builds
Programming Paradigms

  • Procedural Programming
  • Object-Oriented Programming
  • MDD, UML view, OOAD, SOLID
  • Relationships and Responsibility in OOPS
  • ;Introduction to C++ Specific Features
  • Data Declaration and scope, Functions in C++: inline
  • default argument, Overloading, References, Namespaces
  • Inbuilt support for object oriented features
  • RTTI, exception handling, templates
  • Large-Scale Projects Are More Susceptible to Name Clashes
  • Koenig Lookup
  • Namespace Aliases
  • Namespace Utilization Policy in Large-Scale Projects
  • Namespaces and Version Control
  • Scope Resolution Operator Should Not Be Used to Designate Global Names
  • Standard Headers Names
  • Restrictions on Namespaces
  • Namespace std Can Not Be Modified
  • User-Defined new and delete Cannot Be Declared in a Namespace.
Classes and Objects

  • Representing Objects in C++
Object members and special member functions 

  • The initializations in C++ using constructor
  • OAD: C++ Object Implementation
  • How a compiler interprets Object
  • Special member functions
  • Constructors,Destructors
  • Copy and move Constructor
  • Assignment move in Operator
  • Blocking Object Copying
  • Designing a class around mutable, logical const
 Object Initialization & Cleanup

  • Compiler Synthesized Constructor & Destructor
  • Deep copy v/s Shallow copy
  • explicit constructor
  • Copy Constructor v/s Assignment operator
  • Initialization v/s Assignment
  • Order of Initialization
  • Aggregate initialization
Class Members and Designing Software

  • Static data
  • Static methods
  • Object instance control and sharing
  • A minimal pattern study: singleton and its variance
  • lmitations, and extensions
Memory management techniques in C++ 

  • Types of Storage
  • POD (Plain Old Data) and non-POD Objects
  • The Lifetime of a POD Object
  • The Lifetime of a non-POD Object
  • malloc() and free() Versus new and delete
  • new and delete
  • Allocating and Deallocating Arrays Using new[] anddelete[]
Extending the Encapsulation in Design 

  • Friend and classes
  • Object communication
  • Friend functions, Friend classes
  • Const objects and const member functions
  • Object composition & destruction mechanism
  • Boundary classes & object interfaces
Overloading Operators 

  • The operator function and its interpretation object expressions
  • Using member functions & friend functions - when to use what
  • Implicit/explicit overloading mechanism
  • Returning objects & assignment operator
  • Overloading new & delete operators
Special operator overloads: usage in STL as case study

  • operator == , operator [ ], operator ( ), operator ->, operator comma (,)
Code Browsing and reverse engineering

  • CScope ,Cflow
;Objects in Hierarchy Design: Inheritance in C++
  • Example frameworks that are built on inheritance: QT, WX Widget
  • Specialization and Derived Classes
  • Generalization and Abstract class, interfaces
  • Types of inheritance
  • Single level, multi-level, multiple, hierarchical, hybrid
  • Inheritance - is it allocation or accessibility
  • The protected access specifier
  • Inheritance in private, protected & public mode
  • Constructors & destructors in a derived class
  • Multiple inheritance
  • Virtual Base class Invoking base class constructors
  • Why a constructor is not inherited
15. Is-a & Has-a relationship
  • Nested classes & Containership
16. Runtime Polymorphism, Virtual Functions & Dynamic Binding
  • Pointers to Class Members
  • Base class pointers & derived class objects
  • Virtual functions & base class pointers
  • Virtual functions & base class reference
  • Dynamic Binding v/s Early Binding
  • Pure virtual functions
  • Virtual destructors
  • Abstract classes & applications
;Runtime Type Identification & Casting Operators
  • Runtime Polymorphism & RTTI
  • typeid & type_info
  • dynamic_cast, const_cast, static_cast, reinterpret_cast
18. Templates in Depth
  • Implicit instantiation
  • Explicit instantiation
  • Specialization: complete and partial
  • Function Templates
  • Class Templates
  • Declaration of a Class Template
  • Instantiation and Specialization
  • Explicit Specialization of a Class Template
  • Specializations of Class Template Functions
  • Template Arguments
  • Default Type Arguments
  • Static Data Members
  • Friendship
  • Function Templates
  • Performance Considerations
  • Type Equivalence
  • Avoiding Unnecessary Instantiations
  • Explicit Template Instantiation
  • Interaction with Other Language Feature
;The Design of STL for handling Modern and Complex Data handling
  • Containers, Algorithms, and iterators
  • Using STL/STD Containers
  • Using Algorithm and iterators with STD
  • Exploring various containers, iterators and algorithms
  • Vector, List, Map, Set
  • Array, tuple, unordered_map, unordered_set
;Language Feature extensions
  • Initialization, Initializer lists
  • Uniform initialization
  • Move Semantics
  • Lambda
  • Auto, decltype, trailing return type, auto vs. decltype
  • Range-based for loop ,static_assert, constexpr functions/data, Inline namespaces
21. Concurrency in C++
  • STD Threads Passing, arguments to threads
  • Data lifetime considerations, Synchronization with mutexes and locking
  • Acquiring multiple locks, mutex types
  • Returning values from threads using futures and async, Launch policies
  • Condition variables, Thread-local storage




 

Updated on 29 September, 2019

Eligibility / Requirements

The course is intermediate to advanced in proficiency. It is suitable for the following:
>Programmers new in the area of Software Engineering that uses C++
>Developers embarking on projects using C++‐based techniques for their projects
>Professionals looking forward to upgrade the knowledge to apply skills.
Delegates are desired to be aware of OOPS principals but it is not a mandatory

About eAge Technologies

eAge Technologies India Pvt Ltd is a Premium IT Consulting & Training company. Headquartered at Bangalore and with a mission of “creating better people”, we strive at bridging the gap between industry needs and employee/aspirant skill sets. We do this with the help of our large repository of trainer partners.  

Our services are provided in the following areas:

  • Corporate or B2b training: eAge offers IT Training for corporate in technologies such as IoT, Embedded, Internet, Cloud Computing, Big Data, Project Management, Process and Quality Implementation & Mobility.
  • Online training: Catering to aspirants looking at career shifts, knowledge upgrades and access to immersive and industry relevant course content; we provide an online instructor led training program. This program is a unique customized and scheduled training program and has been hugely successful in its acceptance.
  • Consulting: eAge also offers consulting services in Software Development and IT Maintenance in IOT, Embedded and Business Enterprise domain. Our R&D center has built some world class solutions around Embedded, Machine to Machine(M2M) Technologies. Our product, Asset Tracking System (ATS) is an energy monitoring system that aims to reduce the OPEX for any organization and is awarded best solution in the startup event held at Bangalore 2013.
See all eAge Technologies courses