1.Single inheritance
-- example:
Code:
class myClass1
{
// stuff
};
class myClass2:public myClass1
{
// more stuff, but now can use stuff from myClass1 too
};
2.Multiple inheritance
-- example:
Code:
class myClass1
{
// stuff
};
class myClass3
{
// stuff2
};
class myClass2:public myClass1, public myClass3
{
// more stuff, but now can use stuff from myClass1 and myClass3 too
};
3.Multi-level inheritance
-- example:
Code:
class myClass1
{
// stuff
};
class myClass3:public myClass1
{
// can use stuff from myClass1
};
class myClass2:public myClass3
{
// more stuff, but now can use stuff from myClass1 and myClass3 too
};
4.Ad hoc polymorphism
5.Pure Polymorphism
polymorphism has to do with stuff like this:
-- example:
Code:
class myClass1
{
virtual void myFunc()=0; // Means it must be implemented by the inheriting class
};
class myClass2:public myClass1
{
void myFunc();
};
myClass1* shell=new myClass2();
shell->myFunc(); // Calls myFunc from myClass2
We create a myClass1 pointer, but instantiate it with a myClass2 type, This is really nice because we could swap in and out different "modules" just by changing one pointer!