Professional Documents
Culture Documents
--------------------------
Multiple Inheritence where a subclass will have two or more base classes.
example :
A B
| |
|____________|
|
C
};
class base1
{
protected:
int iVar1;
public:
void show_1()
{
cout<<iVar1 <<endl;
}
};
class base2
{
protected:
int iVar2;
public:
void show_2()
{
cout<<iVar2<<endl;
}
};
class base1
{
protected:
int iVar1;
public:
void show()
{
cout<<iVar1 <<endl;
}
};
class base2
{
protected:
int iVar2;
public:
void show()
{
cout<<iVar2<<endl;
}
};
A)
int main()
{
derived Dvar;
Dvar.base1::show();
Dvar.base2::show();
return 0;
}
B)
class derived:public base1,public base2
{
public:
void set(int iTx,int iTy)
{
iVar1=iTx; iVar2=iTy;
}
void show() // method overriding
{
base1::show();
base2::show();
}
};
2) can arise when the derived class has multiple copies of the same base class
A
|
_______|_________
| |
B C
|________________|
|
D
here D will have two copies of class A ie
via class B and via class C
class A
{
public:
void show()
{ cout<<endl<<"A"; }
};
class B:virtual public A
{
};
class C: virtual public A
{
};
class D:public B,public C
{
};
int main()
{
D d1; d1.show();
return 0;
}