Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
0% found this document useful (0 votes)
4 views

inheritance_OOPC_datastream

The document provides an overview of inheritance in C++, explaining its definition, advantages, and various types such as single, multiple, multilevel, hierarchical, and hybrid inheritance. It details the syntax for creating derived classes, access control, and the behavior of constructors and destructors in inheritance. Additionally, it highlights important points regarding object size calculation and member accessibility in derived classes.

Uploaded by

sanskritig1705
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
4 views

inheritance_OOPC_datastream

The document provides an overview of inheritance in C++, explaining its definition, advantages, and various types such as single, multiple, multilevel, hierarchical, and hybrid inheritance. It details the syntax for creating derived classes, access control, and the behavior of constructors and destructors in inheritance. Additionally, it highlights important points regarding object size calculation and member accessibility in derived classes.

Uploaded by

sanskritig1705
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 27

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);

You might also like