Search in
Courses Providers, List Your Courses for FREE
Menu
Subjects Covered & Categories
Learn: C++

Category: Programming


Basic Details
Level:Advanced
Medium of instruction:English
Overview, Content & Syllabus

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

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 have build programs from more than one source file.

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.

What is next?

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.


Course Schedule & Price
Classroom - Regular
When Duration Where Remarks Price
Not Specified Not Specified All Venues Not Specified Price On Request

Venues (Locations)
Pune, Narayan Peth (Head Office):- 418, 4th Floor, Nandlal Housing Society Above Bedekar misal, Munjobacha Bol, Shagun Chowk Narayan Peth, Pune - 411030, Maharashtra, India


About Course Provider

Technnovation Labs


The ubiquitous nature of technology has marked its impact in our day-to-day life with its rapid development rate. Now, it becomes the demand of time that people should be adept at technology.

Training from a professional institute is the pre requisite which will open up greater avenues. Keen focuses on fundamentals with crystal clear concepts can easily transform student to professional & as a summation it will groom a person on all fronts - improved achievement, improved motivation, and improved technological literacy.

The world today has become largely technologically dependent, making progress faster than the speed of light we just cannot deny the position that it holds in our life. The world has become a smaller place and there is a lot of competition among its inhabitants to secure a successful place in this highly competitive scenario. Technology has spread its wings in every sector be it shopping, financial transactions or even education.

However, amid ever-changing technology trends, Technnovation Labs vividly signifies a perfect medley of theoretical knowledge & practical exposure. With our extensive array of various training programs we stand distinguished amongst crowd.

We are a Training & Technology Innovation Hub formed by group of Industry professionals who has stamped their impression in very short span of time. By bolstering the technological literacy with our unique training methodologies, we ranked as Game changers amongst competitors. We are the most sought training partner by students, professionals & corporate because of our full house provision of training resources in technology such as web design and development using PHP, ASP.Net & HTML5. Being master in catering the demands of time we provide numerous career opportunities.

Browse similar courses by category





Subscribe & get details about interesting courses & events free in your mail