Previous | Home | Next |
Hierarchal Inheritance
In this inheritance ,is use hierarchal design. Here a base class is derived to other two or more derived class and then derived class is become base class for next level derived class. This include multilevel inheritance .
Structure of Hierarchal Inheritance:
# include<iostream.h> class base { .... ..... // class body ..... }; class derived1:public base { .... ..... // class body ..... }; class derived2:public base { .... ..... // class body ..... }; class derived3:public base { .... ..... // class body ..... }; class derived2_a:public derived2 { .... ..... // class body ..... }; class derived2_b:public derived2 { .... ..... // class body ..... }; class derived2_c:public derived2 { .... ..... // class body ..... };
Structure of Hierarchal Inheritance:
#include<iostream> const int num = 20 ; class student // Base class { private: char F_name[num] , L_name[num] ; int age, int roll_no ; public: void Enter_data(void) { cout << "\n\t Enter the first name: " ; cin >> F_name ; cout << "\t Enter the second name: "; cin >> L_name ; cout << "\t Enter the age: " ; cin >> age ; cout << "\t Enter the roll_no: " ; cin >> roll_no ; } void Display_data(void) { cout << "\n First Name = " << F_name ; cout << "\n Last Name = " << L_name ; cout << "\n Age = " << age ; cout << "\n Roll Number = " << roll_no ; } }; class arts : public student //derived class of same base class { private: char subject_name1[num] ; char subject_name2[num] ; char subject_name3[num] ; public: void Enter_data(void) { cout << "\t Enter the subject1 : "; cin >> subject_name1 ; cout << "\t Enter the subject2 "; cin >> subject_name2 ; cout << "\t Enter the subject3 "; cin >> subject_name3 ; } void Display_data(void) { cout << "\n Subject1 = " << subject_name1 ; cout << "\n Subject2 = " << subject_name2 ; cout << "\n Subject3 = " << subject_name3 ; } }; class arts : public student //derived class of same base class { private: char s_subject_name1[num] ; char s_subject_name2[num] ; char s_subject_name3[num] ; public: void Enter_data(void) { cout << "\t Enter the subject1 : "; cin >> s_subject_name1 ; cout << "\t Enter the subject2 "; cin >> s_subject_name2 ; cout << "\t Enter the subject3 "; cin >> s_subject_name3 ; } void Display_data(void) { cout << "\n Subject1 = " << s_subject_name1 ; cout << "\n Subject2 = " << s_subject_name2 ; cout << "\n Subject3 = " << s_subject_name3 ; } }; class commerce : public student //derived class of same base class { private: char c_subject_name[num],c_subject_name2[num],c_subject_name3[num] ; public: void Enter_data(void) { cout << "\t Enter the subject1: "; cin >> c_subject_name; cout << "\t Enter the subject2 : "; cin >>c_subject_name2 ; cout << "\t Enter the subject3 : "; cin >>c_subject_name3 ; } void Display_data(void) { cout << "\n Subject1 = " << c_subject_name ; cout << "\n Subject2 = " <<c_subject_name2 ; cout << "\n Subject3 = " <<c_subject_name3 ; } }; void main(void) { arts a ; cout << "\n details of the arts student\n" ; a.Enter_data( ); cout << "\n details of the arts student\n" ; a.Display_data( ); science s ; cout << "\n details of the science student\n" ; s.Enter_data( ); cout << "\n details of the science student\n" ; s.Display_data( ); commerce c ; cout << "\n details of the commerce student\n" ; c.Enter_data( ); cout << "\n details of the commerce student\n"; c.Display_data( ); }
Multilevel Inheritance
In multilevel inheritance where a derived class inherit the property on one base class and that derived class is become the base class for another derived class.
For example A is a base class and B inherit the property of A here B is a derive class and another class C is inherit the property of class B now class B become the base class for class C and class C is derived class For class B. class A indirectly base Class of Class C and class C indirect derived class for class.
Structure of Hierarchal Inheritance:
# include<iostream.h> class base { .... ..... // class body ..... }; class derived1:public base // derived from base class { .... ..... // class body ..... }; class derived2:public derived1 // derived from derived class { .... ..... // class body ..... };
Structure of Multilevel Inheritance:
# include<iostream.h> class student { protected: int roll_num; public: void enter_number(int a) { roll_num=a; } void display_number(void) { cout<< "Enter roll number is"<<roll_num<< "\n"; } }; class test : public student //First level derivation { protected: float subject1: float subject2; public: void enter_marks(float x, float y) { subject1=x; subject2=y; } void display_marks(void) { cout<<"marks of subject1"<<subject1<<"\n"; cout<<"marks of subject2"<<subject2<<"\n"; } }; class result : public test //Second level derivation { float total; public: void display(void) { total=subject1+subject2; display_number(); display_marks(); cout<<"total ="<<total<<"\n"; } }; int main() { result re; re.enter_number(100); re.enter_marks(76.5,77.5); re.display(); return 0; } };
Hybrid Inheritance:
In hybrid Inheritance , this is combination of two or more type of inheritance . but in hybrid inheritance the error will occur is known as ambiguity . Where same function name can have more then one class then compiler confused to identify called function.
# include<iostream.h> class student { protected: int roll_num; public: void enter_number(int a) { roll_num=a; } void display_number(void) { cout<<"Enter roll number is"<<roll_num<<"\n"; } }; class test : public student//First level derivation { protected: float subject1: float subject2; public: void enter_marks(float x, float y) { subject1=x; subject2=y; } void display_marks(void) { cout<< "marks of subject1"<<subject1<< "\n"; cout<< "marks of subject2"<<subject2<< "\n"; } }; class sport { protected: float score; public: void enter_ score(int i) { score=i; } void display_ score(void) { cout<<"Enter score is"<< score<<"\n"; } class result : public test { float total; public: void display(void) { total=subject1+subject2+ score; display_number(); display_marks(); display_ score(); cout<<"total ="<<total<<"\n"; }; int main() { result re; re.enter_number(1234); re.enter_marks(27.5,33.0); re.enter_score(6.0); re.display(); return 0; } };
Oututp
Enter roll number is 1234 marks of subject1 27.5 marks of subject2 33 Enter score is 6 total=66.5