230 likes | 572 Views
Inheritance - Multilevel. MEENA RAWAT PGT (COMP) KV ONGC Chandkheda. Contents. Objectives Concept of Inheritance – Need, Example Type of Class Type of Inheritance - forms Single level Inheritance Visibility Modes Multi level Inheritance. Objectives.
E N D
Inheritance - Multilevel MEENA RAWAT PGT (COMP) KV ONGC Chandkheda
Contents • Objectives • Concept of Inheritance – Need, Example • Type of Class • Type of Inheritance - forms • Single level Inheritance • Visibility Modes • Multi level Inheritance
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
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
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.
Different forms of Inheritance • Single Inheritance – one base class, one derived class • Multiple Inheritance – multiple base class , One derived class • Hierarchical Inheritance - One base class , multiple derived class • Multilevel Inhetitance – derived from derived class • Hybrid Inheritance – mixture of above
Single Level Inheritance One Base Class one derived class Syntax: Class derived_class_name : visibility_modebase_class_name { class members };
Example of Single Level Inheritance class base // base class { int x; public: void setx(int n) { x = n; } void showx() { cout << x << ‘\n’ } }; // Inherit as public class 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(); }
Visibilit modes • Specified whether the features of the base class are privately or publically or protected derived. • Control the access-specifier to be for inheritable members of base class in the derived class.
Public Visibility Mode Class Super Class Base
Private Visibility Mode Class Super Class Base
Protected Visibility Mode Class Super Class Base
Example • #include <iostream.h> • class mm • { • protected: • introllno; • 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(intx,int y) • { • sub1 = x; • sub2 = y; • } • void put_marks(void) • { • cout << "Subject 1:" << sub1 << "\n"; • cout << "Subject 2:" << sub2 << "\n"; • } • };
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; • }
Multiple Inheritance – many base class, one derived class Syntax: Class derived_class_name : visibility_modebase_class_name , visibility_modebase_class_name { class members };
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:privateBRANCH,public PUBLISHER • { • intAcode; • 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?