Advanced C++ Training

We've got the hottest news & views about the Technology World. We could tell you about what's going on in there and what you need to do to progress in your career. Just fill this survey and get personalized lessons that doesn't waste your time, did we forgot to mention it 'free'? Takes only 2 minutes. Join Over 30,000 Happy Learners.

Training Delivery Options | How you will be trained

  • Instructor-led Online

    Online trainer logo

    Best for people with limited time in the day

    No hassle, no wastage of time commuting

    Clear out all your doubts interactively

    Take classes from locations anywhere in the world

    People with moving jobs can take this class

  • Self Paced Online

    Self pace learning logo

    Great for those slow learners who master the subject after learning

    Allow you a whale of a time to practice

    Defer next topic till you have mastered previous one

    This is a great option if you find it difficult to find time

    No hassle of commute

    It's good if you are a Busy-bee

  • Regular Classroom

    Regular classroom training logo

    This is for you if you like learning with others

    If you want to the get the feel of things

    If you have the time to come and learn

    You would get to learn face to face

    Interact with other students

  • Corporate Training

    Corporate training logo

    For a firm wanting trained employees

    Corporate training is a good to retain employees

    Increases skill sets so that same employees work for variety of projects

    No new hiring required

    A great alternative to corporate jaunts

    The cost per employee is low

Overview | why should you do this course

CPP Advanced

This course is the next step from the basic course in C++. Unlike mark-up languages, understanding just the basics then garnering knowledge through practice is not enough.

If you want to take C++ programming as a career, or you want to add it to your skill set so that you can develop or become a software tester in C++, then you have to have the advanced course.

The advanced course at Technnovation features in-depth module on templates, the standard template library and exception handling.

The course increases your skills in C++. In this course you learn C++ concepts such as templates, exceptions, advanced inheritance issues, disambiguation of overloaded functions, memory management, binary Input/output, private and protected inheritance and class libraries.

Why Need It

C++ may be the most widely used programming language in software industry. It is used to build many different kinds of applications such as:

  • system software
  • application software
  • device driver
  • high-performance server and client applications
  • entertainment software like video games

And advanced course will be useful to anybody who wants to go into who wants to add C++ to their skill sets as a programmer.

Course Goals

  • In dept understanding of C++
  • Build complex programs and Run them.
  • Implement design patterns and principles
  • Ability to work with Python's object oriented features
  • Write classes and functions with parameterized types
  • Understand and handle exceptions in C++
  • Understand the different between various kinds of inheritance
  • Use multiple inheritances. Learn about functions, methods and routines
  • How to use arguments and return values

Who Can Take It

Participants should have basic programming experience with C++. They should be familiar with Class mechanisms and should've build programs from more than one source file.

Course Curriculum | what we cover

1. Introduction to Object oriented Concepts

  • 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

2. Object State Internals

  • 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

3. Memory Management Object Initialization

  • 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
    • Delete vs Free
    • Compiler Synthesized Destructor
    • Preventing destroying object instance
    • Avoiding dangling Pointers
    • Destroying objects on the heap
    • Destroying array of objects
    • Issues with Dangling Pointer
    • Smart pointer concept

4. Exception handling

  • Introduction
    • Multiple catch blocks
    • Catch all exceptions
    • Set_terminate function
    • Set_unexpected function
    • Custion exception class
  • Exception handling issues
    • Order of catch blocks
    • Catching exception by value
    • Throwing exception in constructor

5. Code Reusability Techniques using Inheritance & containment

  • Inheritance & containment
    • Containment vs Inheritance
    • Private vs protected inheritance
    • Hybrid Inheritance / virtual base class
    • Changing scope of base member in derived class – The publicizer technique Inheritance
    • The inheritance mechanism
    • 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
    • Applying Inheritance, key abstraction and dynamic binding
    • Constructors & destructors in a derived class
    • Multiple inheritance
    • Virtual Base class
    • Invoking base class constructors
    • Why a constructor is not inherited
    • Is-a & Has-a relationship
    • Nested classes & Containership
    • Runtime Polymorphism, Virtual Functions & Dynamic Binding
    • Pointers & Classes
    • Pointers to Class Members
  • Virtual functions
    • Virtual member function
    • Layering technique, issues related to tight-coupling and loose-coupling, avoiding transitive
    • dependencies
    • Pure virtual function
    • Abstract class v/s Interface v/s Concrete class
  • Virtual function Issues
    • Calling virtual function from constructor
    • Calling virtual function from destructor>
    • Calling virtual function from non virtual member function
    • Object Slicing
    • Virtual destructor
  • Virtual Internals
    • Virtual functions in Single Inheritance
    • Virtual functions in Multiple Inheritance
    • Virtual Inheritance

6. Templates

  • Generic functions & Data abstraction
  • Function templates
  • Explicitly specializing 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

7. Introduction to the STL

  • Containers
    • vectors
    • lists
    • maps
    • containers and exceptions
    • choosing an appropriate container
  • Iterator Design
    • iterators and const_iterators
    • accessing iterator information in generic algorithms
    • types of iterators
      • input iterator
      • output iterator
      • forward iterator
      • reverse iterator
      • random iterator
  • Generic algorithms
    • review: generic algorithms and helper templates
    • interaction between algorithms and iterators
    • types of iterators
      • mutating algorithms
      • non mutating algorithms

8. Introduction to the Design Patterns

  • What are design patterns? Classification
  • Creational Patterns
    • The Factory Pattern
    • The Singleton Pattern
    • The Abstract Factory Pattern
    • Summary of Creational Patterns
  • Structural Patterns
    • The Composite Pattern
    • The Bridge Pattern
    • The Decorator Pattern
    • The Adapter Pattern
  • Behavioral Patterns
    • The Command Pattern
    • The Chain of responsibility Pattern
    • Strategy Pattern
    • The Template Pattern

Upcoming Batches | training schedule

Batch NameCommencing Date
CPPadv/Bt11 Jul
CPPadv/Bt28 Jul
CPPadv/Bt3 15 Jul
* Only Few Seats Left!
CPPadv/Bt4 22 Jul
* Only Few Seats Left!
CPPadv/A/Bt5 29 Jul
Lane no.5, Prabhat Road
Pune, Maharashtra
411004
India

Custom Batches - Just in case you are unable to attend the scheduled batch, Custom batch times are also available.
Give a missed call on +91 898 300 2500

Customized Corporate Private Training: We deliver all our courses as Corporate Training as well - if you are a group interested in the course, this option may be more advantageous for you. We are based in Pune.

Top ↑Where to next? | move on to next step

If there's one thing we could recommend, it'd definitely be Boost C++ Libraries. In fact, Boost is not a single library. It's a collection of them, and they're high-quality, portable, open source and well praised by people ranging from students to the C++ standards committee.

Besides, Learning a new language will also give you insides about the strengths and weaknesses of C++, so you don't become a "one trick pony".

You should invest some time in learning as much Mathematics as you can. Core fields such as Geometry, Algebra, Trig and Matrix Algebra would be, IOHO, the bare minimum, especially if you aim at finding a well paid job.

© 2015 Technnovation Labs