ترتیب اولویت اجرای سازنده های کلاس ها - هفت خط کد انجمن پرسش و پاسخ برنامه نویسی

ترتیب اولویت اجرای سازنده های کلاس ها

+1 امتیاز
ترتیب اولویت اجرای سازنده ها در کلاس که به صورت سلسه مراتبی استفاده شدند به چه صورته؟
سوال شده مهر 18, 1393  بوسیله ی Mad (امتیاز 245)   10 35 47
سلام. اگه میشه یه نمونه کد به صورت سوال اضافه کن تا منظورت رو بهتر بگی
مثلاً یه کلاسی از کلاس دیگه مشتق شده و یا یک کلاسی در این کلاس تعریف شده ترتیب اجرا به چه صورتیه؟

2 پاسخ

+2 امتیاز
 
بهترین پاسخ

به مثال زیر توجه کنید.

#include <iostream>
using namespace std;
class Base1{
public:
	Base1(){


		cout << "Base1" << endl;
	}
};
class Base2{
public:
	Base2(){


		cout << "Base2" << endl;
	}
};
class foo{
public:
	foo(){
		cout << "foo" << endl;
	}
};
class child :public Base1,Base2{
public:
	child(){

		cout << "child" << endl;
	}
	foo f;
};
int _tmain(int argc, _TCHAR* argv[])
{
	child b;

	return 0;
}

 ترتیب اجرای سازنده ها 

base1

base2

foo

child

پاسخ داده شده مهر 21, 1393 بوسیله ی مصطفی ساتکی (امتیاز 21,998)   24 34 75
انتخاب شد آبان 20, 1393 بوسیله ی BlueBlade
+2 امتیاز

اول سازنده کلاس های parent صدا زده میشن (خود کلاس های parent هم اگر دوباره parent داشته باشند به همین شکل بصورتی بازگشتی صدا زده میشن)

بعد هم سازنده خود کلاس .

مثلا

class parent 
{}

class parent2:public parent
{}

class child1:public parent2
{}

parent2 p;//tartib ejra sazande ha : parent-parent2
child1 ch;//tartib ejra sazande ha :  parent - parent2-child1

class child2:public parent2,public parent
{}

child2 ch2;//tartib ejra sazande ha :  parent - parent2-parent-child2

 

پاسخ داده شده مهر 20, 1393 بوسیله ی BlueBlade (امتیاز 15,315)   15 18 89
...