EC104 - Unit 8
EC104 - Unit 8
4. Hierarchical Inheritance }
// body of the class A.
class B : public A
{
Class A
// body of class B.
}
class C : public A
{
// body of class C.
}
class D : public B
{
// body of class D.
}
Class B Class C
Class B Class C
Class B Class C
};
Abstract classes
• An abstract class is one that is not used to create objects.
• An abstract class is designed only to act as base class.
D(int a1, int a2, float b1, float b2, int d1):
A(a1,a2), // call to Constructor A
B(b1,b2) // call to Constructor B
{
d=d1;
}
Method of inheritance
Order of Execution
class B:public A
A(); base constructor
{
B(); derived constructor
};
A(); base constructor(first base)
class B:public A, public C
C(); derived constructor(base two)
{
B(); derived constructor
};
C(); virtual base
class B:public A, virtual public C
A(); base constructor
{
B(); derived constructor
};
#include<iostream> class gamma: public beta, public alpha
{
using namespace std;
int m,n;
class alpha public:
{ int x; gamma(int a, float b, int c, int d):
public: alpha(a), beta(b)
alpha(int i) {
{ x=i; m=c;
cout<<“alpha initialized\n”; } n=d;
void show_x(void) cout<<“gamma initialized\
{ cout<<“X=“<<x<<“\n”; } n”; }
void show_mn(void)
class beta { cout<<“m=“<<m<<“\n”;
{ float y; Output:
cout<<“n=“<<n<<“\n”; }
public:
beta initialized
beta(float j) };
alpha initialized
{ Int main()
gamma initialized
y=j; {
X=5
cout<<“beta initialized\n”; } gamma g(5,10.75, 20 , 30);
Y=10.75
cout << “\n”;
m=20
g.show_x();
void show_y(void) n=30
g.show_y();
{ g.show_mn();
cout<<“Y=“<<y<<“\n”; } };