Introduction to C++ Programming

A 3 month course which explores C++ by covering all the concepts with real time industry relevant examples.

  • Domain : CSE
Enroll Now View demo

A Quick Overview

The C++ programming language is a widely used powerful tool for producing modern object-oriented programs.  I'd like to give you an overview of C++ Programming and its prominent role in various Industries. I'll be addressing C++ features, its Real world Applications, Industrial uses and various Job opportunities with this skill set.This course guides new and experienced programmers through the complexities of writing and maintaining object-oriented programs in C++. This course includes 70% of practical hands on all topics. 

It covers in depth all the Object Oriented Programming concepts with real time industry relevant  examples in all sessions. Apart from that, the 2 projects will test and enable the students to deploy all concepts learnt and be thorough with them.  Project 1 is where students will build an IT inventory management system and in Project 2 is building an Automobile Management System. 

C++ has an immense job market and Top-notch companies. C++ as a backend language to execute functions related to the banking and finance sector. With Knowledge of C++ Language there are several opportunities in industries like Finance, Android Application Development, Game Development, Virtual reality and many more. This course will make you ready in all aspects of C++ to clear interviews for the roles such as: 

  • Software Developer
  • C++ Developer
  • Software Engineer

 


COURSE SYLLABUS

1Introduction to C++

  • Introduction of C++
    • What is C++?
    • Program Paradigm
    • ANSI/ISO vs Standard C++
    • C++ Syntax and Structure
    • C++ Language Fundamentals
    • Benefits of C++ over C
  • C vs C++  
    • Procedural vs OOP
    • Compiling a C Program in C++
    • Undefined Behavior in C and C++
    • Void * in C vs C++
    • Name Mangling 
    • Use of Extern C in C++ Programming
    • Structures in C vs Class in C++
  • C++ vs Java 
    • Similarities between C++ and Java
    • Exception Handling in C++ vs Java
    • Default Virtual Behavior in C++ vs Java
    • Floating Point Operations and Property of Associativity in C, C++ and Java

2Environment Setup & Fundamentals in C++

  • Environment Setup for CPP Programming
    • Compiler setup 
    • Online compilers
    • Eclipse/ Visual Studio Setup
    • First Program
    • Understanding compilation- Build Pipeline
    • Preprocessing, Compiling, Assembling and Linking
  • C++ Basics 
  • Data Types and Modifiers 
    • Built-in Datatypes
    • User-defined or Abstract Data Types
  • Variables in C++
    • Declaration and Scope of Variables
    • Global Variables
    • Local Variables 
    • Static Variables
    • Extern Variables
    • Auto Variables
  • Operators in C++
    • Arithmetic Operators
    • Bitwise Operators
    • Relational Operators
    • Conditional Operators
    • Sizeof Operators
    • Assignment Operator
    • Unary Operator
    • Pre-Increment vs Post-increment Operators
  • Loop Types in C++
    • For
    • While 
    • Do-while
  • Decision Making in C++
    • If
    • else-if
    • if-else-if
    • nested-if
    • switch

3Strings and Arrays

  • Strings in C++
  • Arrays in C++
  • Functions in C++
    • Call by Value
    • Call By Reference
    • Inline Functions
    • Function Pointers 
    • Pointer to Function

4Pointers and References

  • Pointers in C++
  • References in C++
  • File Handling in C++
    • File Operations
    • File Handling through C++ Class
      • fstream
      • ifstream
      • ofstream

5DMA and OOPS Part 1

  •  Dynamic Memory Allocation
    • malloc()
    • calloc()
    • realloc()
    • free
    • new
    • delete
    • malloc vs new
    • free vs delete
  • Object Oriented Programming
    • OOP’s Concepts - Briefing
  • Class
    • Default access specifier in a class
    • Access Modifiers
    • Constructor 
    • Destructor
    • Assignment Operator
    • Copy Constructor
    • Default member functions in a class
  • Object

6OOps Part 2

  • Encapsulation
  • Abstraction
  • Message Passing
  • Dynamic Binding
  • Data Hiding
  • Inheritance
    • Use of Inheritance
    • Modes of Inheritance
    • Types of Inheritance
      • Single Inheritance
      • Multiple Inheritance
      • Hierarchical Inheritance
      • Multiple Inheritance
      • Hybrid Inheritance
      • Multipath Inheritance
  • Diamond Problem

7Oops Part 3

  • Polymorphism
  • Compile Time Polymorphism 
    • Function Overloading
    • Operator Overloading
  • Runtime Polymorphism
    • Function Overriding
    • Virtual Keyword
    • VTable
    • Vptr- V Pointer 
    • Virtual Functions
    • Abstract Class
    • Pure Virtual Function
    • Interface vs Abstract Class 

8Constructor and Destructors

  • Constructor and Destructor 
    • Virtual constructor 
    • Virtual Destructor
    • Virtual Copy Constructor
    • Shallow Copy vs Deep Copy 
    • When does the compiler create default constructor and copy constructor?
    • When do you write your own Copy constructor and Assignment Operator?
    • Dangling Pointer 
    • Void Pointer and Opaque Pointer 
    • Null Pointer and Wild Pointer 
    • Private Constructor
    • Private Destructor
    • Copy Elision
    • Explicit Keyword- Can constructors and Destructors be called explicitly?

 

9Keywords in C++

  • Static Keyword in C++ 
    • Static Variables in a Function
    • Static Variables in a Class
    • Static Members of Class- Static Class Objects
    • Static Member Functions in a Class 
  • Const Keyword in C++ 
  • Mutable Keyword in C++ 
  •  Friend Function and Friend Class in C++ 
  •  This Pointer in C++ 
    • ‘this’ pointer
    • Type of ‘this’ pointer
    • delete ‘this’ 

 

10Type Casting

  • Type Casting in C++ 
    • Implicit cast
    • Explicit cast
      • dynamic_cast
      • static_cast
      • reinterpret_cast
      • const_cast 
  • Member Initializer List in C++ 
    • Use of Initializer Lists
    • Cases where we use Member initializer lists

11Exception Handling

  • Exception Handling in C++
    • Why do we need Exception Handling in C++
    • Base Class and Derived Class Exception Handling 
    • Catch Block in C++
    • Object Destruction 
    • Stack Unwinding in C++
  • Templates in C++ 
    • How do Templates work?
    • Function Templates
    • Class Templates
    • Template Specialization

 

12Multithreading

  • Multithreading in C++ 
    • Posix threads 
    • Std::thread
  • Inter Process Communication 
    • What is IPC
    • Various methods in IPC
  • Smart pointers
    • Use of Smart Pointers
    • Types of Smart Pointers 
      • Auto pointer
      • Unique pointer
      • Shared pointer
      • Weak pointer

 


Projects Overview

Project 1

Highlights

Ramu, Raju and Shyam are working in an IT support team in an Organisation. An organisation has several departments which work on different projects. Due to covid organisations had to restructure their finances as work from home should be implemented across the organisation. There would be a number of workstations to be purchased in order to support employees work without any hindrance and achieve the project deliverables.

As a part of their duty, each of them (Ramu,Raju,Shyam) are given responsibilities to maintain the project budget and reduce the stationary expenses made by various departments. Each department expenses depends on the number of people working in the project, cubicles desk and cubicle chairs allocated for each person, Workstation allocation which includes Desktop/Laptop, headset and stationary items such as Notepad, Pen, Pencil, Stapler, A4 Sheets for printouts of project material etc. One or two printers would be allocated to departments based on the project size. Ramu, Raju and Shyam are required to maintain these commodities and bring down the project expense cost as the stationary items would not be required as employees would be working from home. Hence, the expenses on stationery should be transferred to the workstation expenses. Ramu is responsible for Department ADAS, Raju is the IT support contact for Department Electro, Shyam is the IT SPOC(single point of contact ) for Department Connexion. The manager of each department has shared the number of commodities required to the IT SPOC’s and they had approached two vendors who had given their reasonable quotations for the commodities. However, the finance department had asked the IT support team to purchase within the given budget and reduce the expenses as discussed above.

Say there are two vendors from whom the commodities/workstations are ordered, the individual prices and desired quantities of commodities are given in the following tables.

Person/Number of Commodities to be brought

Laptop

Mouse

Headset

Laptop Bag

Adapter

Ramu

5

15

10

5

20

Raju

10

10

25

10

15

Shyam

3

5

6

3

10



Commodity/Commodity cost

Vendor1

Vendor2

Laptop

45000

43000

Mouse

1500

1200

Headset

2500

3000

Laptop Bag

1200

1000

Adapter

1600

1500

 

Taking the above mentioned data as a sample, Find the best vendor from whom the purchases can be made based on the number of commodities and respective prices to pay a reasonable price.

Now, using array of pointers or dynamically using double pointers dynamically allocate memory for every row in the following arrays:

  1. Array one ->commodities

  2. Array two ->Vendors

  3. The Result will also be a two dimensional array or a double pointer. 

Also, have a menu listed for prompting the user input to enter the commodities and vendors. The menu looks like

  1. Enter Commodities to be purchased

  2. Enter Vendor quotations

  3. Exit

 

The data input provided by the user during runtime should be  saved to a file(.dat or .txt) using stream classes. Note that this file contains commodities list and vendor data.

 

Project 2

Highlights

Build an object-oriented library which can be used to track automobile maintenance. There can be different car types such as petrol, diesel, gas, electric etc., This library should be able to support at least three of the car types. 

Maintenance tasks include activities like oil change or replace oil filter, replace air filter, replace fuel filter, tire rotations, infotainment system debug, replace spark plugs, replace the cabin or a/c filter, check the level and refill clutch fluid or brake fluid, examine belts, wipers, hoses, check the tire conditions, check the charging systems and battery. 

Every vehicle should have the following details:

  1. Make

  2. Model

  3. Year

  4. Odometer reading

The library interfaces or the API’s (Application Program Interface) should be capable of adding, updating, listing and removing the entries at runtime. 

Consider there are three classes such as

  1. Vehicle 

    1. This class includes protected members such as Make, Model, Year and Odometer. These members are initialized using the class constructor.

    2. The functions include getter and setter functions of Make(), Model(), Year() and Odometer(). 

    3. Maintenance activities that should be done are checkTireRotation(), getCarInformation()

    4. Let the three fuel types be 

enum Type{

GAS,

DIESEL,

ELECTRIC

};

  1. Let there be a pure virtual method to get the fuel type i.e., 

    1. virtual Type getType() = 0;

 

  1. GasCar

    1. This is inherited from the vehicle class and has functions getType() and getFuelType()

  2. DieselCar 

    1. This class is also a subclass of vehicle and the functions include getFuelType() and getType()

  3. ElectricCar

    1. This is a subclass of Vehicle class and methods include 

      1. checkTireRotation()- based on odometer reading, we decide whether the car needs to rotate tires or not.

      2. checkChargerPower- based on odometer reading this advices to recharge power

      3. getType() – to get the fuel type

  4. FuelVehicle

    1. This is an abstract class that inherits vehicle class. The methods in this class include checkOil() and pure virtual function getFuelType()

Maintenance activities that has to be done are as follows,

  1. Check tire rotation: Let the tire cycle be 50,000 km. Calculate the distance the car has run and if this distance run is at 50k km, then advise rotation, else tires are good to go. Also, calculate the remainder of each 50k km, If remainder >=0 then advice to rotate tires.

  2. Check Power: Let the distance be 400km, If the distance the car has run is at 400km, then advise battery to be recharged else your vehicle is good to go. 

Now that we have learnt about the classes to be created, we need to write our driver code i.e., main.cpp

  1. In the main class, initialize the inventory and ask the user to select whether to add, update, list or delete the Vehicle list.

    1. addVehicle() – to add new vehicle to inventory

    2. ListVehicle()- to list the vehicles in the inventory

    3. UpdateVehicle()- to update the vehicle in the inventory list

    4. RemoveVehicle()- to remove the vehicle from the inventory list

    5. Tire Rotation() – Check if tires need rotation

    6. OilChange()- check if car requires oil change

    7. Recharge() – check if vehicle needs recharge

  2. Check for the user input, 0-1-2-3-4-5-6-7, Functions will be called based on the input provided by the user. If the input is wrong, ask again.

  3. Menu should be as below,

 

<< "   0. Quit.\n"

 

<< "   1. List inventory.\n"

 

<< "   2. Add vehicle.\n"

 

<< "   3. Update vehicle\n"

 

<< "   4. Remove vehicle\n"

 

<< "   5. Tire Rotation\n"

 

<< "   6. Oil Change\n"

 

<< "   7. Recharge\n"

 
 
 
  1. Retrieve the user input on the vehicle’s make, model, year, type and odometer.

    1. getNewMake() – If input is blank, request again

    2. getNewModel() – If input is blank, request again

    3. getYear() – If input doesn’t have 4 digits, request again

    4. getNewOdometer()- Input should be only numericals

    5. getNewType() – Input should be within 0-2, else request again

  2. Retrieve the selected car from the user input

    1. selectCar() – Input should be within the size of vehicle list, else request again

    2. getNewOdometerReading() – New odometer reading is used to calculate the oil change, tire rotation, power recharge etc.

 


Flexible Course Fees

Choose the plan that’s right for you

Basic

2 Months Access

7000

Per month for 3 months

  • Access Duration : 2 months
  • Mode of Delivery : Online
  • Project Portfolio : Available
  • Certification : Available
  • Email Support : Available
  • Forum Support : Available
Premium

Lifetime Access

15000

Per month for 3 months

  • Access Duration : Lifetime
  • Mode of Delivery : Online
  • Project Portfolio : Available
  • Certification : Available
  • Individual Video Support : 12/Month
  • Group Video Support : 12/Month
  • Email Support : Available
  • Forum Support : Available
  • Telephone Support : Available
  • Dedicated Support Engineer : Available

WHO IS THIS COURSE FOR ?


SOFTWARE COVERED

C++ Language

There are several real world applications of C++ Language. Here are few as listed below

  • Medical Industry (They have several specialized micro computer systems that use C or C++ as a baseline)
  • Desktop Applications are very commonly written in C++, though many windows based ones are moving towards C#, C++ is still very common.
  • The Gaming Industry, especially with demands for performance, C and C++ are often used in high end games and engines, 
  • Automation and hardware often use embedded systems where C/C++ is common.
  • EDA(Electronic Design Automation) industry. Most EDA softwares are written with C++.


Testimonials

Companies hire from us

See all

Certification

  • Top 5% of the class will get a merit certificate
  • Course completion certificates will be provided to all students
  • Build a professional portfolio
  • Automatically link your technical projects
  • E-verified profile that can be shared on LinkedIn

SKILL LYNC WORKS TO GET YOU A JOB

See all

Frequently Asked Questions

1Who can take your course?

Any Graduate or student who would like to take up coding as their career. This course gives an overview of Object Oriented Programming which is in wide use in various industries such as Medical, Gaming, Automation, Finance, Trading, Semiconductor, etc

 

 

2What is included in your course?

This course includes pre-requisites of learning C++ Programming, C++ Basics and Advanced Topics

 

3What will the student gain from your course?

An overview of Object Oriented Programming and Hands on Development using Features of OOPs

 

4What software skills are you teaching and how well are these tools used in the industry?

In this course, an overview of C++ Programming and its prominent role in various Industries is provided. C++ features, its Real world Applications , Industrial uses and various Job opportunities with this skillset is also covered.

 

5What real world application for the tools and techniques will you teach in this course?

There are several real world applications of C++ Language. Here are few as listed below

  • Medical Industry (They have several specialized micro computer systems that use C or C++ as a baseline)
  • Desktop Applications are very commonly written in C++, though many windows based ones are moving towards C#, C++ is still very common.
  • The Gaming Industry, especially with demands for performance, C and C++ are often used in high end games and engines, though as computing power increases the efficiency is becoming less important.
  • Automation and hardware often use embedded systems where C/C++ is common.
  • EDA(Electronic Design Automation) industry. Most EDA softwares is written with C++. EDA softwares requires a lot of calculations, C++ is the best choice.

 

6Which companies use these techniques and for what?

Companies that use C++ Language for coding in Automotive Industry are TCS, Robert Bosch, HCL, Continental, Harman International, ZF, Volvo, Altran, etc., for various projects such as Renault, Nissan, Jaguar, Land Rover, GM, Chery, Volvo, Suzuki, etc. 

 

7How is this course going to help me get a job?

C++ has an immense job market and Top-notch companies like Google, Amazon, Flipkart, HP, IBM, Intel, Microsoft, Infosys, Sun Microsystems hire C++ professionals. C++ as a backend language to execute functions related to the banking and finance sector e.g., Infosys Finacle employs. With Knowledge of C++ Language there are several opportunities in industries like Finance, Android Application Development, Game Development, Virtual reality and many more.

 


You Might Also Be Interested In

Related Courses

See all

The Skill-Lync Advantage

See all