Object Oriented Programming with C++

Walk through the wonderful world of C++
4.3 (17 ratings)
Instead of using a simple lifetime average, Udemy calculates a
course's star rating by considering a number of different factors
such as the number of ratings, the age of ratings, and the
likelihood of fraudulent ratings.
95 students enrolled
70% off
Take This Course
  • Lectures 78
  • Length 7 hours
  • Skill Level All Levels
  • Languages English
  • Includes Lifetime access
    30 day money back guarantee!
    Available on iOS and Android
Wishlisted Wishlist

How taking a course works


Find online courses made by experts from around the world.


Take your courses with you and learn anywhere, anytime.


Learn and practice real-world skills and achieve your goals.

About This Course

Published 12/2015 English

Course Description

Many a times C++ is regarded as replacement of stdio.h in C by iostream in C++, printf and scanf in C by cout and cin in C++ and structure in C by class in C++...

My objective is to take this course beyond that myths and impressions...

Learning C++ is not just syntax but far more than that. OOP was one of the revolution in s/w industry. Here is an attempt is made to teach concepts of C++ from philosophical point of view and not mere from programming perspective. OOP and C++ are the way we live, behave, act, respond, and exist in the world...!

I am making attempt in the world by mapping each implemented concept of OOP in C++ by mapping it to the real world. May be its first attempt in the world to teach in this manner by using animation.

Besides all features of C++ with OOP along with step by step explanation, I am going to put here notes, quiz, interview questions along with answers and assignments as well.

I am sure if understand the basics, Java, PHP, Python would not only be an easy cakewalk but you would love learning those in the future. So I am using numerous day-to-day examples to explain concepts.

Course starts from basics of programming methodologies and then covers each feature of C++ with detail analysis rather than mere explanation of programs.

What are the requirements?

  • Student should have in-depth of knowledge of C language
  • Must have hands-on experience of writing programs
  • Must have and IDE or turbo C++ compiler i.e. TCC

What am I going to get from this course?

  • Master principles of Object Oriented Programming
  • Become proficient in understanding concepts of C++
  • Become expert in comprehending C++ source code
  • Become confident to face campus interview

Who is the target audience?

  • For those who want to know Object Oriented Programming methodology with real world examples
  • For those who don't want to learn mere syntax, but interested in knowing why C++ programs are written in OOP style
  • Absolutely essential for engineering and polytechnic students
  • Those who plan to learn Java, PHP and Python in the future
  • Suitable for those who want to make career in Software Engineering
  • For those who are comfortable with C

What you get with this course?

Not for you? No problem.
30 day money back guarantee.

Forever yours.
Lifetime access.

Learn on the go.
Desktop, iOS and Android.

Get rewarded.
Certificate of completion.


Section 1: Fundamental principles of Object Oriented Programming


Shweta here...!

Here in this video I am introducing about me and the course



You can’t trust code that you did not totally create yourself...!
Ken Thompson

Here is the scope of subject and methodology which I am going to follow to explain the Object Oriented Programming with C++. Hope you enjoy my way of teaching.


A language that doesn’t have everything is actually easier to program in than some that do...!
---Dennis Ritchie

  • In this topic I am taking you in the past...to explore history of C++ language...

If you don't know where you are going, road will get you there...!
...Lewis Carroll

After knowing history let's see the future...!


Measuring programming progress by lines of code is like measuring aircraft building progress by weight...!
---Bill Gates

If you have written C program, here is the methodology which you followed while writing C programs


Debugging is twice as hard as writing the code in the first place. Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it...!
---Brian Kernighan

This is just an overview of OOPs methodology in a nutshell


The main object of religion is not to get a human into heaven, but to get heaven into him...
---Thomas Hardy


Without history, there would be no future...!


In order to be irreplaceable, One must always be different...!


The objects are very beautiful and important in and of themselves, but also because of the story they tell...
---David Silverman


Sarcastic Saying..."Men will be Men"....and..."Boys will be boys"...

What's wrong in that...?

After all object are an instance of Class...!


Sometimes abstraction and encapsulation are at odds with performance — although not nearly as often as many developers believe — but it is always a good practice first to make your code right, and then make it fast...
---Brian Goetz


Upper classes are a nation's past;

The middle class is its future

....Ayn Rand


"Abstraction is selective ignorance...!"
-Andrew Koenig

The complexity of the problems you are able to solve is directly related to the kind and quality of Abstraction

Everywhere you look, you see them - objects..! People, animals, planes, cars, buildings, computers and the like. Human think in terms of objects. We have the marvelous ability of abstraction that enables us to view screen images as objects such as people, plane, trees, and mountains rather than as individual dots of color. We can, if we wish, think in terms of beaches rather than grains of sand, forests rather than trees, and houses rather than bricks...!


This method is to define as the class number of a class the class of all classes similar to given class...!
....Bertrand Russel


One Ring to Rule them all,
One Ring to find them,
One Ring to bring them all
and in the darkness bind them.

---John Ronald Reuel Tolkien


Only God can turn a Mess into a Message...!


A Message prepared in the mind reaches a mind...A message prepared in a life reaches a life...!

---Bill Gothard

God sends you lot of messages...Keep your senses open to receive them...!



In this dynamically changing world, you often take decisions dynamically...Don't you?



This penultimate topic covers applications of OOPs in the software industry.


Here we come to the end of first chapter... It was just introduction to two mmethodologies viz. POP & OOP.

Summary video would help you to recall everything learnt so far in this chapter...

30 questions

Here is a fast quiz on fundamentals of OOPs


Here are a few assignments for you. You can discuss along with other students in the class and explore it

Section 2: Moving from C to C++

What do you do when you plan to purchase any new gadget...? Ask this question to yourself and answer before you start this unit...!


Here is first set of differences between C and C++. You would learn various minor and major differences like commenting style in C and C++, size of character constant, difference in meaning of empty parenthesis in front of function, compilation rules, placement of variables declaration, initialization of global variables etc. in C and C++.

Don't just listen but pause while you view the code. Type it. Observe output in C and C++ compilers separately. I advise you to use old TC compiler for understanding the beauty of C as well as enhancement made by Stroustrup in C++.

Old TC compiler is available on the internet.

Note: You may find some different outputs than mentioned in the video. But I just want you to understand the attempts behind the possible enhancement.


Here is second set of differences between C and C++ wherein you would learn how tag name of user defined data type differs between C and C++, const modifier, how return type of main function defers, how string constants are handles by C and C++, need of function prototype, type casting, new concepts like void pointer, compiler-only table etc.  


Here is third and final set of differences between C and C++. The topic starts with difference in default access category of structure in C and class in C++, and then it is followed by various concepts like scope resolution operator and typecasting methods in C and C++.  


Although it is possible to write portable programs, there are many programs among different C and C++ compilers and different computers that can ,make portability difficult to achieve. Simply writing programs in C and C++ does not guarantee portability. The programmer will often need to deal with compiler and computer variations. 

Here is summary of the topic. A small but very interested story has been narrated here for you. If you have enrolled for my other course "Demystifying C programming language" then you can skip this story. 

16 questions

Take a Break...Take a  Quiz

The quiz is designed to refresh your knowledge of C programming as well along with C++

Section 3: Reference Variable in C++

"I love nick names. It makes me feel loved. It makes me feel less alone in this world...!" 
---Ellen Page

Here in this topic you would be introduced to a new topic which is a wonderful facility directly imported from real world. 


Here is review of two popular concepts from functions in C i.e. 

  1. function call by value 
  2. function call by reference"  

Review is taken to understand power of reference variable in a better way. 


Here you will learn everything about reference variable in C++ i.e. syntax of reference variable and tips to use it appropriately.


Your computer and compiler are good teachers. If after carefully reading your C++ language manual you are not sure how a feature of C++ works, experiment using small test programs like in the previous chapters and see what happens. Se your compiler options for "Maximum warnings". Study each message you get when you compile your programs and correct the program to eliminate the message.  

Here is a sample program to understand theory learnt so far in last topic 


Here is a single problem solved with three methods i.e. 

  1. function call by value
  2. function call by address
  3. function call be reference

Study carefully 


Swapping contents of two variables using or without using 3rd variable has been second most popular program in while learning any hardcore computer programming language after famous "Hello World" program. And why not it should be? After all, any operating system works on this basic principle...!

Here is the interesting program using reference variable  


Here is the last video in this chapter which explains use of const while handling reference variable in C. At the end you would get to answers to 3 small but cryptic questions in this chapter. 

10 questions

It's a break...Quiz time break

Section 4: Default function arguments

Here is introduction to new small topic "Default function arguments". Try to understand its importance. The concepts has been intelligently used by many programming languages while writing libraries. I bet you, its really interesting feature of C++.


The arguments in function having default values can be categorized as Mandatory arguments and default arguments. Here is syntax of default arguments along with meaning of mandatory arguments and default arguments. Examples are hypothetical for understanding purpose only. Explore its use by thinking on your own. 


Here is a sample program written on the basis of real life example. Its a hypothetical program written in 3 different files for exploring power of default function arguments in C++

6 questions

Take a break...Take a quiz

Section 5: Dynamic Memory Allocation

Memory allocated to variables can be at either compile time or at run time. Here is introduction to dynamic memory allocation


Here is explanation of everything about memory with the aid of animation...like data segment, logical partitions, scope and life etc. of variables and focus on heap


Here is first function from C, for allocation of memory dynamically. Its a library function.


Here is explanation of one more memory allocation function calloc(). The video also covers explanation of the function free() which releases the memory from the heap.


Memory taken dynamically may proved to be insufficient and in such case the library function realloc() helps you to request for additional memory at run time. Here is how it works... 


Here we are to study how memory can be taken from the heap at run time in C++. 


new in C++ is versatile operator proposed by Prof. Stroustrup. Here is more about new in C++.


Here is summary of this chapter so far we learnt. 

6 questions

A short Break...It's Quiz time

Section 6: Classes and Objects

Here is refreshing introduction to classes and objects in C++. 


Class in C++ resembles structure in C. Though both are user defined data types, major difference exists between class and structure. Here is brief about structure in C. Might be revision for you. But take it. 


Let's have a look at difference between structure in C and class in C++. 


In C you might have heard the term "Data Type". This type has been given new dimension in C++. Here it is how...!


Here is how class in C++ can be designed...


Let's have a look at syntax of the class


It's the Encapsulation, which gives you the power of Data Hiding and Data inaccessibility... Here is more about Encapsulation in C++


Here is roles of access specifiers viz. private, public and protected while designing the class


Here is the video which explains information that can be retrieved by user of a class just by looking at the class design. 


Here is first program of C++ using class. You would find detail analysis of scope resolution operator at the end of the topic. 


The Question "How does one write good programs in C++?" is very similar to the question "How does one write good English prose?" There are two answers: "Know what you want to say" and "Practice. Imitate good writing". Both appear to be appropriate for C++ as they are for English - and hard to follow. 
Bjarne Stroustrup 

Here is inside view of typical C++ program written using class


Let's feel the pains if we have to mimic the class program in C++ using structures in C


Here are very interesting sample codes to create instance on the stack, an array of instances, an instance on the heap and and an array of instances on the heap. 


In the last century "Landline" phone used to be popular gadget at home as well as commercial premises. Then came the mobile, "a personal gadget". However both has got it's own pros and cons. 

"Inline functions in C++", I would say is same kind of mechanism....!

Don't take it literally :)


Here is the video to extend default functions arguments learnt in the 4th chapter in the context of "Class in C++" 


Here is discussion about const member functions in a C++ class. 


Like variable of primitive data type, reference to instance of user defined class can be created. This is exhaustively used while writing C++ applications. Listen carefully the philosophy behind this concept.  


"A true relationship has tears"

Here is a video which explains relationship between container class and containing class. 

Both programs explained have been attached herewith in resources so that you can type, compile and execute them to explore intricacies of containing class relationship.


Here is the last topic of this chapter. Try to understand the program. Study it carefully before you go to the next chapter. 

20 questions

Please don't take this quiz right now if you are absolutely new to C++ programming language. This is going to last topic only after a few more topics are uploaded. Thank you for reaching here and your patience.

Section 7: Manager functions in C++

This topic is continuation to the last topic in last chapter. You would understand this chapter only when you have understood philosophy of class containing pointer data member.  


In this topic you will understand everything about basics of constructor like its syntax rules, when it is called, and when not called. 


Here is a counterpart of constructor in the previous topic and it is Destructor in C++. I have taken small and simple programs on the background of animation to explain flow control and concepts. You need to be very carefully as you need to given attention on various parts of the screen at a time. 


Here is one of the important concept of the constructor i.e Default Constructor. It is usually expressed in single line. But I am elaborating it taking its importance into consideration. 

So in all programs written till date were having a default constructor (hidden though) supplied by the constructor.

Try to apply analogy in our day-to-day life if you can after completion of this topic. Human too behave like a compiler. 


Constructor taking single argument is different than constructor taking multiple arguments. So this case is dealt here separately. Try to understand the importance. 


The video explains you need of writing default constructor if user takes part in writing explicit constructors for instance initialization. The source code is attached here for download. 


Here is a program of constructor taking two arguments. Try to understand importance and difference between constructor taking single argument and multiple arguments. Source code is attached so that you can try it on your own machine


When you give some article as a gift to anybody you love, you wrap it in a "Gift box". Though this "Gift box" is temporary, it is necessary. The temporary instance in C++ is the same which is created internally by the compiler. Your job as a programmer is to make provision by way of provision of a suitable constructor. The same is explained it here. The concept is difficult to understand by reading book. So extensive animation is used to explain the same. I hope you understand the underlying philosophy.

The source code is made available for downloading so that you can test the program on your machine and understand control flow of each step. 


Here is a small program containing class having constructor taking two arguments with default values. Source code is also provided to download. Try this program on your machine.  


Initializing 1 instance with existing instance is one of the important feature of Copy Constructor. 

Though compiler provides default copy constructor, it's of no use if class data member is of pointer.

Study the program carefully to understand Shallow Copy 


In this video you would understand

  • What is deep copy?
  • What is the need of user defined copy constructor?
  • What are the differences between a shallow copy and a deep copy?

Note: Programs explained in the video are made available to download. Don't copy programs but type them on your own.


Though constructor is said to be used for initialization of an object at the time of creation, it's not true initialization but and assignment. 

Here is video which explains difference between an Initialization and an Assignment in C++ context 


Here is the solution provided by Stroustrup to address issues in the last topic. You would learn

  • Base/member initialization list in this topic
  • Syntax to implement
Section 8: Special Class features

Here is I am with one more important topic to discuss special features of Class in C++. This would be introduction to this topic "Special Class Features". 


The topic is difficult to understand. Try to listen and view contents of the video. I am trying to convey, how member function of the class knows which instance he is going to act. 

It is the special pointer called "this pointer" which makes it possible.     

To simplify it, when you use instance name for calling member function, don't forget that 

  • An instance is local to the main function
  • We are not sending any reference of calling instance to member function
  • Function definition is very general in a sense that it doesn't mention visibly "name of any instance" as a formal argument.   

Don't worry if you fail to comprehend, all concepts in the video. Later on, you would understand, what I mean in this video. 

Students Who Viewed This Course Also Viewed

  • Loading
  • Loading
  • Loading

Instructor Biography

Bhalchandra Gholkar, Creating innovative e-contents for programming languages

Post graduate Engineer... Computer Programming language trainer for last 15 years... Passionate about teaching and have taught personally over 3500 students. Currently my team is developing unique methodology for teaching programming language to the masses at lowest possible price. My team has tried to develop absolutely out of the box e-learning contents similar to Crafting a diamond.... for those who want to understand language concepts...

Ready to start learning?
Take This Course