SlideShare a Scribd company logo
NAME : PROGRAMMING IN C++
STAFF : M.JANCY PRIYA MCA., M.PHIL.,
CLASS : I BCA
SEMESTER: II
UNIT : III
TOPIC : INHERITANCE
PROGRAMMING
IN C++
UNIT 3
INHERITANCE
• THE CAPACITY OF A CLASS TO ASSUME PROPERTIES AND CHARACTERISTICS
FROM ANOTHER CLASS IS CALLED INHERITANCE. INHERITANCE IS ONE OF
THE MOST IMPORTANT ELEMENT OF OBJECT ORIENTED PROGRAMMING.
SUB CLASS: THE CLASS THAT INHERITS ESTATES FROM ANOTHER CLASS IS
CALLED SUB CLASS OR DERIVED CLASS.
SUPER CLASS: THE CLASS WHOSE ESTATES ARE INHERITED BY SUB CLASS IS
CALLED BASE CLASS OR SUPER CLASS.
MODES OF INHERITANCE
MODES OF INHERITANCE
• PUBLIC MODE: IF WE ASSUME A SUB CLASS FROM A PUBLIC BASE CLASS.
THEN THE PUBLIC MEMBER OF THE BASE CLASS WILL BECOME PUBLIC IN
THE DERIVED CLASS AND COVERED MEMBERS OF THE BASE CLASS WILL
BECOME COVERED IN DERIVED CLASS.
• PROTECTED MODE: IF WE ASSUME A SUB CLASS FROM A COVERED BASE
CLASS. THEN BOTH PUBLIC MEMBER AND COVERED MEMBERS OF THE BASE
CLASS WILL BECOME COVERED IN DERIVED CLASS.
• PRIVATE MODE: IF WE ASSUME A SUB CLASS FROM A PRIVATE BASE CLASS.
THEN BOTH PUBLIC MEMBER AND COVERED MEMBERS OF THE BASE CLASS
WILL BECOME PRIVATE IN DERIVED CLASS.
TYPES OF INHERITANCE
• SINGLE INHERITANCE: IN SINGLE INHERITANCE, A CLASS IS GRANT TO
INHERIT FROM ONLY ONE CLASS. I.E. ONE SUB CLASS IS ROOTED BY ONE
BASE CLASS ONLY.
SYNTAX: CLASS SUBCLASS_NAME : ACCESS_MODE BASE_CLASS { //BODY OF
SUBCLASS };
• MULTIPLE INHERITANCE: MULTIPLE INHERITANCE IS A CHARACTER OF C++
WHERE A CLASS CAN INHERIT FROM MORE THAN ONE CLASSES. I.E
ONE SUB CLASS IS ROOTED FROM MORE THAN ONE BASE CLASSES.
SYNTAX: CLASS SUBCLASS_NAME : ACCESS_MODE BASE_CLASS1,
ACCESS_MODE BASE_CLASS2, .... { //BODY OF SUBCLASS };
• MULTILEVEL INHERITANCE: IN THIS TYPE OF INHERITANCE, A DERIVED
CLASS IS CONSTRUCT FROM ANOTHER DERIVED CLASS.
• HIERARCHICAL INHERITANCE: IN THIS TYPE OF INHERITANCE, MORE THAN
ONE SUB CLASS IS ROOTED FROM A SINGLE BASE CLASS. I.E. MORE THAN ONE
DERIVED CLASS IS CONSTRUCT FROM A SINGLE BASE CLASS.
• HYBRID (VIRTUAL) INHERITANCE: HYBRID INHERITANCE IS
ACHEIVED BY CONNECTING MORE THAN ONE TYPE OF
INHERITANCE. FOR EXAMPLE: CONNECTING HIERARCHICAL
INHERITANCE AND MULTIPLE INHERITANCE.
EXAMPLE OF INHERITANCE:
#INCLUDE <IOSTREAM.H>
USING NAMESPACE STD;
//BASE CLASS
CLASS PARENT
{
PUBLIC:
INT ID_P;
};
// SUB CLASS INHERITING FROM BASE CLASS(PARENT)
CLASS CHILD : PUBLIC PARENT
{
PUBLIC:
INT ID_C;
};
//MAIN FUNCTION
INT MAIN()
{
CHILD OBJ1;
// AN OBJECT OF CLASS CHILD HAS ALL DATA MEMBERS
// AND MEMBER FUNCTIONS OF CLASS PARENT
OBJ1.ID_C = 7;
OBJ1.ID_P = 91;
COUT << "CHILD ID IS " << OBJ1.ID_C << ENDL;
COUT << "PARENT ID IS " << OBJ1.ID_P << ENDL;
RETURN 0;
}
POINTER
POINTER:
 A POINTER IS A VARIABLE THAT DOMINANCE A MEMORY ADDRESS WHERE A VALUE ACTIVITY.
 A POINTER IS ANNOUNCED USING THE * OPERATOR BEFORE AN ACCESSORY.
 AS C++ IS A STATICALLY TYPED LANGUAGE, THE TYPE IS REQUIRED TO ASSERTS A POINTER.
EXAMPLE OF POINTER:
#INCLUDE <IOSTREAM>
USING NAMESPACE STD;
INT MAIN ()
{ I
INT VAR = 20; // ACTUAL VARIABLE DECLARATION.
INT *IP; // POINTER VARIABLE
IP = &VAR; // STORE ADDRESS OF VAR IN POINTER VARIABLE
COUT << "VALUE OF VAR VARIABLE: ";
COUT << VAR << ENDL;
// PRINT THE ADDRESS STORED IN IP POINTER VARIABLE COUT << "ADDRESS STORED IN IP
VARIABLE: ";
COUT << IP << ENDL;
// ACCESS THE VALUE AT THE ADDRESS AVAILABLE IN POINTER
COUT << "VALUE OF *IP VARIABLE: ";
COUT << *IP << ENDL;
RETURN 0;
}
OUTPUT:
VALUE OF VAR VARIABLE: 20
ADDRESS STORED IN IP VARIABLE: 0XBFC601AC
VALUE OF *IP VARIABLE: 20
VIRTUAL FUNCTIONS
VIRTUAL FUNCTION:
A VIRTUAL FUNCTION A MEMBER FUNCTION WHICH IS STATED WITHIN BASE CLASS AND IS RE-DEFINED BY
DERIVED CLASS. WHEN YOU ASSIGN TO A DERIVED CLASS OBJECT USING A POINTER OR A HINT TO THE BASE
CLASS, YOU CAN CALLA VIRTUAL FUNCTION FOR THAT OBJECT AND HANG THE DERIVED CLASS'S VERSION OF
THE FUNCTION.
EXAMPLE OF VIRTUAL FUNCTION:
#INCLUDE<IOSTREAM>
USING NAMESPACE STD;
CLASS BASE
{
PUBLIC:
VIRTUAL VOID PRINT ()
{ COUT<< "PRINT BASE CLASS" <<ENDL; }
VOID SHOW ()
{ COUT<< "SHOW BASE CLASS" <<ENDL; }
};
CLASS DERIVED:PUBLIC BASE
{
PUBLIC:
VOID PRINT ()
{ COUT<< "PRINT DERIVED CLASS" <<ENDL; }
VOID SHOW ()
{ COUT<< "SHOW DERIVED CLASS" <<ENDL; }
};
INT MAIN()
{
BASE *BPTR;
DERIVED D;
BPTR = &D;
//VIRTUAL FUNCTION, BINDED AT RUNTIME
BPTR->PRINT();
// NON-VIRTUAL FUNCTION, BINDED AT COMPILE TIME
BPTR->SHOW();
}
OUTPUT:
PRINT DERIVED CLASS
SHOW BASE CLASS
POLYMORPHISM
• POLYMORPHISM MEASURE THAT A CALL TO A MEMBER FUNCTION WILL CAUSE A
DIFFERENT FUNCTION TO BE ASSASSINATE DEPENDING ON THE TYPE OF OBJECT
THAT CONJURE THE FUNCTION. POLYMORPHISM OCCURS WHEN THERE IS A
HIERARCHY OF CLASSES AND THEY ARE LINKED BY INHERITANCE.

More Related Content

PPTX
Multiple inheritance in c++
PDF
OOP Assign No.03(AP).pdf
PPTX
Single inheritance
PPT
polymorphism
PPTX
Inheritance
PPTX
Inheritance in Object Oriented Programming
PPT
11 Inheritance.ppt
PPT
Inheritance in C++
Multiple inheritance in c++
OOP Assign No.03(AP).pdf
Single inheritance
polymorphism
Inheritance
Inheritance in Object Oriented Programming
11 Inheritance.ppt
Inheritance in C++

Similar to Inheritance (20)

PPT
Super keyword.23
PPTX
Inheritance in c++
PPTX
inheriTANCE IN OBJECT ORIENTED PROGRAM.pptx
PPSX
Seminar on java
PPT
PPT
session 24_Inheritance.ppt
PDF
UNIT 4.pdf.........................................
PPT
C++Presentation 2.PPT
DOCX
UNIT 4.docx.........................................
PPT
Inheritance in C++
PPTX
Inheritance
PPTX
Inheritance
PPTX
EASY TO LEARN INHERITANCE IN C++
PPTX
JAVA Module 2____________________--.pptx
PPTX
Inheritance in c++
PPTX
inheritance
PPT
6.INHERITANCE.ppt(MB).ppt .
PPTX
C++ presentation
PPTX
Inheritance
PDF
Super keyword.23
Inheritance in c++
inheriTANCE IN OBJECT ORIENTED PROGRAM.pptx
Seminar on java
session 24_Inheritance.ppt
UNIT 4.pdf.........................................
C++Presentation 2.PPT
UNIT 4.docx.........................................
Inheritance in C++
Inheritance
Inheritance
EASY TO LEARN INHERITANCE IN C++
JAVA Module 2____________________--.pptx
Inheritance in c++
inheritance
6.INHERITANCE.ppt(MB).ppt .
C++ presentation
Inheritance
Ad

Recently uploaded (20)

PPTX
Renaissance Architecture: A Journey from Faith to Humanism
PDF
STATICS OF THE RIGID BODIES Hibbelers.pdf
PDF
Mark Klimek Lecture Notes_240423 revision books _173037.pdf
PDF
O7-L3 Supply Chain Operations - ICLT Program
PDF
Basic Mud Logging Guide for educational purpose
PDF
Microbial disease of the cardiovascular and lymphatic systems
PPTX
school management -TNTEU- B.Ed., Semester II Unit 1.pptx
PPTX
Week 4 Term 3 Study Techniques revisited.pptx
PDF
Origin of periodic table-Mendeleev’s Periodic-Modern Periodic table
PDF
The Lost Whites of Pakistan by Jahanzaib Mughal.pdf
PPTX
Microbial diseases, their pathogenesis and prophylaxis
PPTX
Cell Types and Its function , kingdom of life
PDF
Classroom Observation Tools for Teachers
PDF
RMMM.pdf make it easy to upload and study
PDF
VCE English Exam - Section C Student Revision Booklet
PDF
Business Ethics Teaching Materials for college
PDF
Physiotherapy_for_Respiratory_and_Cardiac_Problems WEBBER.pdf
PPTX
PPT- ENG7_QUARTER1_LESSON1_WEEK1. IMAGERY -DESCRIPTIONS pptx.pptx
PDF
O5-L3 Freight Transport Ops (International) V1.pdf
PPTX
Institutional Correction lecture only . . .
Renaissance Architecture: A Journey from Faith to Humanism
STATICS OF THE RIGID BODIES Hibbelers.pdf
Mark Klimek Lecture Notes_240423 revision books _173037.pdf
O7-L3 Supply Chain Operations - ICLT Program
Basic Mud Logging Guide for educational purpose
Microbial disease of the cardiovascular and lymphatic systems
school management -TNTEU- B.Ed., Semester II Unit 1.pptx
Week 4 Term 3 Study Techniques revisited.pptx
Origin of periodic table-Mendeleev’s Periodic-Modern Periodic table
The Lost Whites of Pakistan by Jahanzaib Mughal.pdf
Microbial diseases, their pathogenesis and prophylaxis
Cell Types and Its function , kingdom of life
Classroom Observation Tools for Teachers
RMMM.pdf make it easy to upload and study
VCE English Exam - Section C Student Revision Booklet
Business Ethics Teaching Materials for college
Physiotherapy_for_Respiratory_and_Cardiac_Problems WEBBER.pdf
PPT- ENG7_QUARTER1_LESSON1_WEEK1. IMAGERY -DESCRIPTIONS pptx.pptx
O5-L3 Freight Transport Ops (International) V1.pdf
Institutional Correction lecture only . . .
Ad

Inheritance

  • 1. NAME : PROGRAMMING IN C++ STAFF : M.JANCY PRIYA MCA., M.PHIL., CLASS : I BCA SEMESTER: II UNIT : III TOPIC : INHERITANCE
  • 3. INHERITANCE • THE CAPACITY OF A CLASS TO ASSUME PROPERTIES AND CHARACTERISTICS FROM ANOTHER CLASS IS CALLED INHERITANCE. INHERITANCE IS ONE OF THE MOST IMPORTANT ELEMENT OF OBJECT ORIENTED PROGRAMMING. SUB CLASS: THE CLASS THAT INHERITS ESTATES FROM ANOTHER CLASS IS CALLED SUB CLASS OR DERIVED CLASS. SUPER CLASS: THE CLASS WHOSE ESTATES ARE INHERITED BY SUB CLASS IS CALLED BASE CLASS OR SUPER CLASS.
  • 4. MODES OF INHERITANCE MODES OF INHERITANCE • PUBLIC MODE: IF WE ASSUME A SUB CLASS FROM A PUBLIC BASE CLASS. THEN THE PUBLIC MEMBER OF THE BASE CLASS WILL BECOME PUBLIC IN THE DERIVED CLASS AND COVERED MEMBERS OF THE BASE CLASS WILL BECOME COVERED IN DERIVED CLASS. • PROTECTED MODE: IF WE ASSUME A SUB CLASS FROM A COVERED BASE CLASS. THEN BOTH PUBLIC MEMBER AND COVERED MEMBERS OF THE BASE CLASS WILL BECOME COVERED IN DERIVED CLASS. • PRIVATE MODE: IF WE ASSUME A SUB CLASS FROM A PRIVATE BASE CLASS. THEN BOTH PUBLIC MEMBER AND COVERED MEMBERS OF THE BASE CLASS WILL BECOME PRIVATE IN DERIVED CLASS.
  • 5. TYPES OF INHERITANCE • SINGLE INHERITANCE: IN SINGLE INHERITANCE, A CLASS IS GRANT TO INHERIT FROM ONLY ONE CLASS. I.E. ONE SUB CLASS IS ROOTED BY ONE BASE CLASS ONLY. SYNTAX: CLASS SUBCLASS_NAME : ACCESS_MODE BASE_CLASS { //BODY OF SUBCLASS };
  • 6. • MULTIPLE INHERITANCE: MULTIPLE INHERITANCE IS A CHARACTER OF C++ WHERE A CLASS CAN INHERIT FROM MORE THAN ONE CLASSES. I.E ONE SUB CLASS IS ROOTED FROM MORE THAN ONE BASE CLASSES. SYNTAX: CLASS SUBCLASS_NAME : ACCESS_MODE BASE_CLASS1, ACCESS_MODE BASE_CLASS2, .... { //BODY OF SUBCLASS };
  • 7. • MULTILEVEL INHERITANCE: IN THIS TYPE OF INHERITANCE, A DERIVED CLASS IS CONSTRUCT FROM ANOTHER DERIVED CLASS. • HIERARCHICAL INHERITANCE: IN THIS TYPE OF INHERITANCE, MORE THAN ONE SUB CLASS IS ROOTED FROM A SINGLE BASE CLASS. I.E. MORE THAN ONE DERIVED CLASS IS CONSTRUCT FROM A SINGLE BASE CLASS.
  • 8. • HYBRID (VIRTUAL) INHERITANCE: HYBRID INHERITANCE IS ACHEIVED BY CONNECTING MORE THAN ONE TYPE OF INHERITANCE. FOR EXAMPLE: CONNECTING HIERARCHICAL INHERITANCE AND MULTIPLE INHERITANCE.
  • 9. EXAMPLE OF INHERITANCE: #INCLUDE <IOSTREAM.H> USING NAMESPACE STD; //BASE CLASS CLASS PARENT { PUBLIC: INT ID_P; }; // SUB CLASS INHERITING FROM BASE CLASS(PARENT) CLASS CHILD : PUBLIC PARENT { PUBLIC: INT ID_C; };
  • 10. //MAIN FUNCTION INT MAIN() { CHILD OBJ1; // AN OBJECT OF CLASS CHILD HAS ALL DATA MEMBERS // AND MEMBER FUNCTIONS OF CLASS PARENT OBJ1.ID_C = 7; OBJ1.ID_P = 91; COUT << "CHILD ID IS " << OBJ1.ID_C << ENDL; COUT << "PARENT ID IS " << OBJ1.ID_P << ENDL; RETURN 0; }
  • 11. POINTER POINTER:  A POINTER IS A VARIABLE THAT DOMINANCE A MEMORY ADDRESS WHERE A VALUE ACTIVITY.  A POINTER IS ANNOUNCED USING THE * OPERATOR BEFORE AN ACCESSORY.  AS C++ IS A STATICALLY TYPED LANGUAGE, THE TYPE IS REQUIRED TO ASSERTS A POINTER. EXAMPLE OF POINTER: #INCLUDE <IOSTREAM> USING NAMESPACE STD; INT MAIN () { I INT VAR = 20; // ACTUAL VARIABLE DECLARATION. INT *IP; // POINTER VARIABLE IP = &VAR; // STORE ADDRESS OF VAR IN POINTER VARIABLE COUT << "VALUE OF VAR VARIABLE: "; COUT << VAR << ENDL; // PRINT THE ADDRESS STORED IN IP POINTER VARIABLE COUT << "ADDRESS STORED IN IP
  • 12. VARIABLE: "; COUT << IP << ENDL; // ACCESS THE VALUE AT THE ADDRESS AVAILABLE IN POINTER COUT << "VALUE OF *IP VARIABLE: "; COUT << *IP << ENDL; RETURN 0; } OUTPUT: VALUE OF VAR VARIABLE: 20 ADDRESS STORED IN IP VARIABLE: 0XBFC601AC VALUE OF *IP VARIABLE: 20
  • 13. VIRTUAL FUNCTIONS VIRTUAL FUNCTION: A VIRTUAL FUNCTION A MEMBER FUNCTION WHICH IS STATED WITHIN BASE CLASS AND IS RE-DEFINED BY DERIVED CLASS. WHEN YOU ASSIGN TO A DERIVED CLASS OBJECT USING A POINTER OR A HINT TO THE BASE CLASS, YOU CAN CALLA VIRTUAL FUNCTION FOR THAT OBJECT AND HANG THE DERIVED CLASS'S VERSION OF THE FUNCTION. EXAMPLE OF VIRTUAL FUNCTION: #INCLUDE<IOSTREAM> USING NAMESPACE STD; CLASS BASE { PUBLIC: VIRTUAL VOID PRINT () { COUT<< "PRINT BASE CLASS" <<ENDL; } VOID SHOW () { COUT<< "SHOW BASE CLASS" <<ENDL; } };
  • 14. CLASS DERIVED:PUBLIC BASE { PUBLIC: VOID PRINT () { COUT<< "PRINT DERIVED CLASS" <<ENDL; } VOID SHOW () { COUT<< "SHOW DERIVED CLASS" <<ENDL; } }; INT MAIN() { BASE *BPTR; DERIVED D; BPTR = &D; //VIRTUAL FUNCTION, BINDED AT RUNTIME BPTR->PRINT(); // NON-VIRTUAL FUNCTION, BINDED AT COMPILE TIME BPTR->SHOW(); } OUTPUT: PRINT DERIVED CLASS SHOW BASE CLASS
  • 15. POLYMORPHISM • POLYMORPHISM MEASURE THAT A CALL TO A MEMBER FUNCTION WILL CAUSE A DIFFERENT FUNCTION TO BE ASSASSINATE DEPENDING ON THE TYPE OF OBJECT THAT CONJURE THE FUNCTION. POLYMORPHISM OCCURS WHEN THERE IS A HIERARCHY OF CLASSES AND THEY ARE LINKED BY INHERITANCE.