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

شرایط صدا زدن سازنده کلاس

0 امتیاز
سلام

برای اجرا شدن سازنده یک کلاس حتما باید یک شی از کلاس رو بسازیم؟

نمیشه مثلا زمانی که میخواهیم از داخل کلاس A تابعی از کلاس B رو فراخوانی میکنیم بگیم سازنده B رو هم اجرا کن؟

کلا در چه زمانی سازنده کلاس فراخوانی و اجرا میشه؟
سوال شده اردیبهشت 11, 1393  بوسیله ی moh3en (امتیاز 209)   15 28 40
دوباره تگ گذاری شد مهر 9, 1393 بوسیله ی BlueBlade

1 پاسخ

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


برای اجرا شدن سازنده یک کلاس حتما باید یک شی از کلاس رو بسازیم؟

بله . حتما . اگه بصورت دستی هم صدا کنیدش یه شی موقت (Temporary) بوجود میاد .

نمیشه مثلا زمانی که میخواهیم از داخل کلاس A تابعی از کلاس B رو فراخوانی میکنیم بگیم سازنده B رو هم اجرا کن؟

چرا . میشه .

کلا در چه زمانی سازنده کلاس فراخوانی و اجرا میشه؟

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

یا مثل کد پایین میشه اون سازنده رو دستی صدا زد . ولی باید به این توجه کنید که یه شی موقت درست میشه که باید حواستون بهش باشه .

 

مثلا میتونی به این شکل این کارها رو انجام بدی :

#include <iostream>

using namespace std;

class B
{
public:
	B() {data = 0;}
	B(int num){ data = num;}

	int data;
};

class A
{
public:
	A() : b(4){}

	int Foo (void)
	{
		b = B(3);
		return b.data;
	}

	B b;
};

int main ()
{
	A t;
	cout<<t.b.data<<endl;
	t.Foo();
	cout<<t.b.data<<endl;
	cout<<B(6).data<<endl;

    return 0;
}

 

پاسخ داده شده اردیبهشت 11, 1393 بوسیله ی Ali Rahbar (امتیاز 4,240)   6 16 46
انتخاب شد اردیبهشت 16, 1393 بوسیله ی BlueBlade
...