1
Inheritance - Multilevel
MEENA RAWATPGT (COMP)
KV ONGC Chandkheda
2
Contents
1. Objectives2. Concept of Inheritance – Need, Example3. Type of Class4. Type of Inheritance - forms5. Single level Inheritance6. Visibility Modes7. Multi level Inheritance
3
Objectives
• In this session, you will learn:– To be able to create new classes by inheriting from
existing classes.– To understand how inheritance promotes software
reusability.– To understand the notions of base classes and derived
classes. – Forms of Inheritance
4
Concept of Inheritance - Need
• The mechanism by which one class can inherit the properties of another class.
• It allows a hierarchy of classes to be built, moving from the most general to the most specific.
• Code reusability - one class can be used without redefining or rewrite. It makes faster development time, easier to maintenance, easy to extend.
• Capability to express the inheritance relationship• Transitive nature of nature
5
Real Life Examples
6
Vehicles
Automobiles
Cars Bike
Non Auto Mobile
Cycle
7
Type of Class
• Base Class / Super Class– Defines all qualities attributes common to any
derived classes.• Derived Class / Sub Class– Inherits those general properties and adds new
properties that are specific to that class.
8
Different forms of Inheritance
1. Single Inheritance – one base class, one derived class
2. Multiple Inheritance – multiple base class , One derived class
3. Hierarchical Inheritance - One base class , multiple derived class
4. Multilevel Inhetitance – derived from derived class
5. Hybrid Inheritance – mixture of above
9
Single Level Inheritance
One Base Class one derived classSyntax:Class derived_class_name : visibility_mode base_class_name{
class members};
base
derived
10
Example of Single Level Inheritanceclass base // base class{
int x;public:void setx(int n) { x = n; }void showx() { cout << x << ‘\n’ }
};// Inherit as publicclass derived : public base //derived class{
int y;public:void sety(int n) { y = n; }void showy() { cout << y << ‘\n’;}
};int main() {
derived ob;ob.setx(10);ob.sety(20);ob.showx();ob.showy();
}
11
Visibilit modes
1. Specified whether the features of the base class are privately or publically or protected derived.
2. Control the access-specifier to be for inheritable members of base class in the derived class.
12
Role of visibility modesVisibility Mode is Inheritable public
member becomes (in derived class)
Inheritable protected member becomes (in derived class)
Private member of base class are not directly accessible
to derived class
Public Public Protected
Protected Protected Protected
Private private private
13
Public Visibility ModeX check() private
Y display() public
Z getval() protected
A init() Private
Y display()B readit()
Public
Z getval()C writeval()
Protected
Class Super
Class Base
14
Private Visibility ModeX check() private
Y display() public
Z getval() protected
A init()Y display()Z getval()
Private
B readit() Public
C writeval() Protected
Class Super
Class Base
15
Protected Visibility ModeX check() private
Y display() public
Z getval() protected
A init() Private
B readit() Public
C writeval()Y display()Z getval()
Protected
Class Super
Class Base
16
Multilevel Inheritance(derived from a derived class)
17
Example• #include <iostream.h>• class mm• {• protected:• int rollno;• public:• void get_num(int a)• { rollno = a; }• void put_num()• { cout << "Roll Number Is:\n"<< rollno << "\n"; }• };• class marks : public mm• {• protected:• int sub1;• int sub2;• public:• void get_marks(int x,int y)• {• sub1 = x;• sub2 = y;• }• void put_marks(void)• {• cout << "Subject 1:" << sub1 << "\n";• cout << "Subject 2:" << sub2 << "\n";• }• };
18
• class res : public marks• {• protected: • float tot;• public:• void disp(void)• {• tot = sub1+sub2;• put_num();• put_marks();• cout << "Total:"<< tot;• }• };• int main()• {• res std1;• std1.get_num(5);• std1.get_marks(10,20);• std1.disp();• return 0;• }
19
Multiple Inheritance – many base class, one derived class
Syntax:Class derived_class_name : visibility_mode base_class_name , visibility_mode base_class_name{
class members};
20
Question asked in Board Exam• Answer the questions (i) to (iv) based on the following: 4• class PUBLISHER• {• char Pub[12];• double Turnover;• protected:• void Register();• public:• PUBLISHER();• void Enter();• void Display();• };• • class BRANCH• {• char CITY[20];• protected:• float Employees;• public:• BRANCH();• void Haveit();• void Giveit();• };• • class AUTHOR:private BRANCH,public PUBLISHER• {• int Acode;• char Aname[20];• float Amount;• public:• AUTHOR();• void Start();• void Show();• };• • Write the names of data members, which are accessible from objects belonging to class AUTHOR.• Write the names of all the member functions which are accessible from objects belonging to class BRANCH.• Write the names of all the members which are accessible from member functions of class AUTHOR.• How many bytes will be required by an object belonging to class AUTHOR?
21
Thank You.
Top Related