وراثت چندگانه

از ویکی جامع پردیس دانشگاهی دانشگاه قم
پرش به: ناوبری، جستجو
برنامه نویسی پیشرفته
مقاله بعدی:درس:برنامه نویسی پیشرفته
مقاله قبلی:توابع همنام در کلاس های پایه و مشتق


وراثت چندگانه:

اگر کلاسی از چند کلاس پایه مشتق شود، وراثت چندگانه رخ می دهد. در وراثت چندگانه، کلاس مشتق اعضای خود را از چند کلاس به ارث می برد.

مثال: برنامه ای که وراثت چندگانه و کاربرد سازنده های با پارامتر را در وراثت چندگانه نشان می دهد.

baseClass1.h

class baseClass1
{
public:
baseClass1(int x);
~baseClass1();
protected:
int i;
};

baseClass1.cpp

#include "stdAfx"
#include "baseClass1.h"
#include <iostream>
using namespace std;

baseClass1::baseClass1(int x)
{
i=x;
cout<<"consructing baseClass1.";
}

baseClass1::~baseClass1(void)
{
cout<<"destructing baseClass1.";
cin.get();
}

baseClass2.h

class baseClass2
{
public:
baseClass2(int x);
~baseClass2();
protected:
int k;
};

baseClass2.cpp

#include "stdAfx.h"
#include "baseClass2.h"
#include <iostream>
using namespace std;

baseClass::baseClass2(int x)
{
k=x;
cout<<"constructing baseClass2.";
}

baseClass2::~baseClass2()
{
cout<<"destructing baseClass2.";
}

derivedClass.h

#include "baseClass1.h"
#include "baseClass2.h"

class derivedClass: public baseClas1,baseClass2
{
public:
derivedClass(int x, int y, int z);
~derivedClass();
void show();
private:
int j;
};

derivedClass.cpp

#include "stdAfx.h"
#include "derivedClass.h"
#include <iostream>
using namespace std;

derivedClass::derivedClass(int x, int y , int z): baseClass1(y),baseClass2(z)
{
j = x;
cout<<"constructing derivedClass.";
}

derivedClass::~derivedClass()
{
cout<<"destructing derivedClass.";
}

void derivedClass::show()
{
cout<<"in derivedClass we have:";
cout<<"i= "<< i <<"j= "<<j << "k= "<<k<< endl;
}

main

#include "stdAfx.h"
#include "derivedClass.h"
#include <iostream>
using namespace std;

int main()
{
derivedClass derivedObject (10,20,30);
derivedObject.show();
}