INHERITANCE IN C++
MADE BY:
• SANSKRITI GUPTA-10378
• VEDIKA PONDE-10354
• YASH HADKE-10318
• MAYURESH SARODE-10360
• SHRAVANI THOOL-10370
• JAINAM DUDHEDIYA-10377
WHAT IS AN INHERTANCE?
Inheritance is the process by which new classes called
derived classes are created from existing classes called
base classes.
The derived classes have all the features of the base class
and the programmer can choose to add new features
specific to the newly created derived class.
The idea of inheritance implements the is a relationship.
For example, mammal IS-A animal, dog IS-A mammal
hence dog IS-A animal as well and so on.
WHAT IS AN INHERTANCE?
contd…
All mammals have
MAMMAL certain
characteristics.
Dog is a mammal. It has all features Cat is a mammal. It has all features
of mammals in addition to its own of mammals in addition to its own
unique features unique features
FEATURES /ADVANTAGES OF
INHERITANCE
Reusability of Code
Saves Time and Effort
Faster development, easier maintenance
and easy to extend
Capable of expressing the inheritance
relationship and its transitive nature which
ensures closeness with real world
problems .
SYNTAX
To create a derived class from an already existing base class
the syntax is:
class derived-class: access-specifier base-class
{
….
Where access specifier is one of public, protected, or private.
SYNTAX contd……
For example, if the base class is In this example class
animals and the derived class is amphibians have access to
amphibians it is specified as: both public and protected
members of base class
class animals //base class animals.
{
NOTE: A class can be derived
from more than one class,
……. which means it can inherit data
}; and functions from multiple
base classes. In that case a
class amphibians : public animals class derivation lists names of
{ one or more base classes each
//derived class separated by comma.
…..
};
ACCESS CONTROL AND
INHERITENCE
A derived class can access all the protected and public members of its
base class.
It can not access private members of the base class.
PUBLIC
BASE CLASS
CA
PROTECTED INH N BE
ER
ITE
D
PRIVATE
CA
INH N BE
ER CHILD CLASS
IT E
D
CAN NOT BE INHERITED
ACCESS CONTROL AND INHERITENCE
contd…
We can summarize the different access types according to who can access
them in the following way:
Access public protected pri
vate
Same class yes
yes yes
Derived classes yes yes no
Outside classes yes no no
NOTE: Constructors and destructors of the base class are never inherited.
VISIBILTY MODES AND
INHERITANCE
A child class can inherit base class in three ways. These are:
M em
I nh e bas bers of PRIVATE PROTECTED PUBLIC
ritan e cl
ce t ass
y pe
PRIVATE NOT Become private Become private
INHERITED members of child members of child
class class
PROTECTED NOT Become protected Become protected
INHERITED members of child members of child
class class
PUBLIC NOT Become protected Become public
INHERITED members of child members of child
class class
BASE BASE BASE
CLAS CLAS CLAS
PRIVATE S PRIVATE S PRIVATE S
ed
ed
ed
erit
erit
erit
PROTECTE PROTECTE PROTECTE
in h
in h
in h
D D D
PUBLIC PUBLIC PUBLIC
Not
Not
Not
PUBLIC PUBLIC PUBLIC
PROTECTE PROTECTE PROTECTE
D D D
PRIVAT PRIVAT PRIVAT
E E E
CHILD CHILD CHILD
CLAS CLAS CLAS
S
PRIVATE INHERTANCE S S
PROTECTED INHERITANCE
PUBLIC INHERITANCE
PRIVATE INHERITANCE
In private inheritance protected and public members of the base class
become the private members of the derived class.
class child
{
private:
class base class child : private base int x;
{ { void funcx();
Protected members
private: private: int b;
inherited from base
int a; int x; void funcb(); class
void funca(); Private void funcx(); int c;
Public members
protected: protected: void funcc(); inherited from base
int b; inheritance int y; protected: class
void funcb(); void funcy(); int y;
public: public: void funcy();
int c; int z; public:
void funcc(); void funcz(); int z;
} } void funcz();
}
New child class after
inheritance
PROTECTED
become the protected INHERITANCE
In protected inheritance protected and public members of the base class
members of the derived class.
class child
{
private:
class base class child : protected base int x;
{ { void funcx();
private: private: protected:
int a; int x; int y;
void funca(); Protected void funcx(); void funcy();
int b; Protected members
protected: protected: inherited from base
int b; inheritanceint y; void funcb(); class
void funcb(); void funcy(); int c;
void funcc(); Public members
public: public: inherited from base
int c; int z; public: class
void funcc(); void funcz(); int z;
} } void funcz();
}
New child class after
inheritance
PUBLIC INHERITANCE
In protected inheritance protected members become the protected members of the base
class and public members of the base class become the public members of the derived
class. class child
{
private:
class child : public int x;
class base
base void funcx();
{
{ protected:
private:
private: int y;
int a;
int x; void funcy();
void funca(); Public void funcx(); int b; Protected members
protected:
protected: void funcb();
inherited from base
int b; inheritance int y; class
void funcb(); public:
void funcy(); int z;
public:
public: void funcz();
int c;
int z; int c; Public members
void funcc();
void funcz(); void funcc(); inherited from base
} class
} }
New child class after
inheritance
TYPES OF INHERITANCE
There are five different types of
inheritance:
1.Single Inheritance
2.Multiple Inheritance
3.Multilevel Inheritance
4.Hierarchical Inheritance
5.Hybrid Inheritance
SINGLE INHERITENCE
Single inheritance is the one where you have a single
base class and a single derived class.
STUDEN
T
EXAMPL COURSE
E
class student
class course : public
{
student
private:
{
char name[20];
long course_code;
float marks;
char course_name;
protected:
public:
void result();
course();
public:
void commence();
student();
void cdetail();
void enroll();
}
void display();
}
MULTILEVEL
INHERITENCE
In Multi level inheritance, a subclass inherits
from a class that itself inherits from another
class.
FURNITUR
E
SOFA
EXAMPLE
OFFICE
class sofa: public class office: private
class furniture sofa
furniture
{ {
{
char type; int no_of_pieces;
int no_of_seats;
char model[10]; char delivery_date[10];
float cost;
public: public:
public:
furniture(); void readdetails()
void indata();
void readdata(); void displaydetails();
void outdata();
void dispdata(); }
};
}
MULTIPLE
INHERITENCE
In Multiple inheritances, a derived class inherits from
multiple base classes. It has properties of both the base
classes.
MULTIPLE CHAIRPERSON DIRECTOR
INHERITENCE
EXAMPLE
COMPANY
class chaiperson
class company: private
{
class director chairperson, public
long chairid;
{ director
char name[20];
long directorid; {
protected:
char dname[20]; int companyid;
char description[20];
public: char city[20];
void allocate();
director(); char country[20];
public:
void entry(); public:
chairperson();
void display(); void ctentry();
void assign();
}; void ctdisplay();
void show();
};
};
HIERARCHICAL INHERITENCE
In hierarchical Inheritance, it's like an inverted
tree. So multiple classes inherit from a single base
class.
HIERARCHICAL INHERITENCE TOYS
EXAMPLE SOFT ELECTRONI
C TOYS
TOYS
class toys
class softtoys: public
{ class electronictoys:
toys
char tcode[5]; public toys
{
protected: {
chat stname[20];
float price; char etname[20];
float weight;
void assign(float); int no_of_batteries;
public:
public: public:
softtoys();
toys(); void etentry();
void stentry();
void tentry(); void etdisplay();
void stdisplay();
void tdisplay(); };
};
};
HYBRID INHERITENCE
It combines two or more types of inheritance. In this
type of inheritance we can have a mixture of number
of inheritances.
CONSTRUCTORS AND DESTRUCTORS IN
BASE AND DERIVED CLASSES
Derived classes can have their own constructors and
destructors.
When an object of a derived class is created, the
base class’s constructor is executed first, followed by
the derived class’s constructor.
When an object of a derived class goes out of scope,
its destructor is called first, then that of the base
class.
IMPROTANT POINTS TO
NOTE
Calculating the size of the object of the child class:
While calculating the size of the object of the child class, add the size of all data
members of base class including the private members of the base class and the
child class.
If child class is inheriting from multiple base classes, add the size of data
members of all base classes and the child class.
In case of multilevel inheritance the size of all base classes(directly /indirectly)
inherited by child class is added to the size of child class data members
Members accessible to the object of the child class:
Only public members of the new modified child class(after inheritance) are
accessible to the object of the child class.
Members accessible to the functions of the child class:
All members: public, protected, private, of the new modified child class(after
inheritance) are accessible to the functions of the child class.
PASSING ARGUMENTS TO BASE CLASS
CONSTRUCTOR
If a base class has parametrized constructor then it is the duty of child class to
pass the parameters for base class constructor also at the time of creation of
object.
class course : public student
class student
{
{
long course_code;
private:
char course_name[20];
char name[20]; Child class
public:
float marks; constructor
protected:
Base class course(long cc, char cn[20],char nam[20], float mar )
void result();
constructor : student(char
public:
nam[20], float mar);
student(char nam[20], float
Base class
mar);
void commence(); constructor
void enroll();
void cdetail(); parameters
void display();
}
}
course c1(01,”CS”,”Naman”, 460);