INHERITANCE
INHERITANCE
Inheritance Syntax�
class base_class_name
{
..................
};
class derived_class_name : acess_specifier base_class_name
{
...........
} ;
Inheritance Example�
class base
{
Private: int x;
Public: int y;
base()
{
x = 10; y = 15;
}
};
class derive1 : public base
{
public:
void display()
{
cout << "x of base class is not accessible" << endl;
cout << "value of y in base class = " << y;
} };
int main()
{
derive1 obj;
obj.display();
return 0;
}
OUTPUT
TYPES OF INHERITENCE
SINGLE INHERITANCE
SINGLE INHERITANCE
SINGLE INHERITANCE SYNTAX�
class A
{
..........
};
class B : acess_specifier A
{
...........
} ;
SINGLE INHERITANCE EXAMPLE�
class base
{
public: int x;
void getdata()
{
cout << "Enter the value of x = "; cin >> x;
}
};
class derive : public base
{
private: int y;
public:
void readdata()
{
cout << "Enter the value of y = ";
cin >> y;
}
void product()
{ cout << "Product = " << x * y; }
};
main()
{ derive a;
a.getdata();
a.readdata();
a.product();
}
Output
Multilevel Inheritance�If a class is derived from another derived class�
Multilevel Inheritance Syntax�
class A
{
...........
};
class B : acess_specifier A
{
...........
} ;
class C : access_specifier B
{
...........
} ;
Multilevel Inheritance Example�
class base
{
public: int x;
void getdata()
{
cout << "Enter value of x= ";
cin >> x;
} };
class derive1 : public base
{
public: int y;
void readdata()
{ cout << "\nEnter value of y= ";
cin >> y;
} };
class derive2 : public derive1
{
private: int z;
public: void indata()
{
cout << "\nEnter value of z= "; cin >> z;
}
void product()
{
cout << "\nProduct= " << x * y * z;
} };
main()
{
derive2 a;
a.getdata();
a.readdata();
a.indata();
a.product();
}
Output
Hierarchical Inheritance� When several classes are derived from common base class
Hierarchical Inheritance Syntax�
class A
{
.............
};
class B : access_specifier A
{
...........
} ;
class C : access_specifier A
{
...........
} ;
class D : access_specifier A
{
..........
} ;
Hierarchical Inheritance Example�
class C : public A {
public: void sum()
{
cout << "\nSum= " << x + y;
} };
int main()
{
B obj1;
C obj2;
obj1.getdata();
obj1.product();
obj2.getdata();
obj2.sum();
}
Output
enter value of x and y:
2
3
Product= 6
Enter value of x and y:
2
3
Sum= 5
Multiple Inheritance�If a class is derived from two or more base classes
Multiple Inheritance Syntax�
class A
{
..........
};
class B
{ ...........
} ;
class C : acess_specifier A,access_specifier B
{
...........
} ;
Multiple Inheritance Example�
class A {
public: int x;
void getx()
{
cout << "enter value of x: ";
cin >> x;
} };
class B
{ public: int y;
void gety()
{ cout << "enter value of y: "; cin >> y;
} };
class C : public A, public B
{
public: void sum()
{
cout << "Sum = " << x + y;
}};
int main()
{
C obj1;
C obj1.getx();
obj1.gety();
obj1.sum();
}
Output
Hybrid Inheritance� combination of two or more types of inheritance.
Hybrid Inheritance Syntax�
class A
{
.........
};
class B : public A
{
..........
} ;
class C
{
...........
};
class D : public B, public C
{
...........
};
Hybrid Inheritance Example�
class A {
public: int x;
};
class B : public A {
public:
B()
{ x = 10; }
};
class C
{
public: int y;
C() { y = 4; }
};
class D : public B, public C
{
public: void sum()
{
cout << "Sum= " << x + y; } };
int main()
{
D obj1;
obj1.sum();
}
Output
Protected access modifier
class Parent
{
protected:
int id_protected;
};
class Child : public Parent
{
public:
void setId(int id)
{
id_protected = id;
}
void displayId()
{
cout << "id_protected is: " << id_protected;
}
};
int main()
{
Child obj1;
obj1.setId(81);
obj1.displayId();
return 0;
}
Modes of Inheritance