PDA

View Full Version : سوال: توابع در ++c



Cplasplas87
شنبه 18 مهر 1388, 00:13 صبح
:چشمک:سلام به همه دوستان. آیا می توان در لیست پارامترهای یک تابع شیی از یک کلاس که قبلا تعریف شده قرار داد؟مثلا:




class sphere()
{
int t;
}
class media()
{
void passing(sphere the_sphere);
}

Nima_NF
شنبه 18 مهر 1388, 00:56 صبح
بله؛
(البته دقت کنید که در کدی که نوشتید قالب کلاس ها را اشتباه نوشتید و ; نگذاشتید)

فقط اگر مستقیم تعریف کلاس قبل از آن نیست قبل از استفاده در کلاس آن را به شکل زیر با عبارت class تعریف کنید تا برای کلاس های بعدی شناخته شده باشد:



class sphere;

class Rect
{
// use sphere
};

Cplasplas87
یک شنبه 19 مهر 1388, 00:05 صبح
مشکلم در ارسال شی به یک تابع ، به عنوان آرگومان، برطرف شد متشکرم ولی موقعی که تعریف کلاس sphere در جایی دیگر انجام شود و بلافاصله قبل از کلاس Rectصورت نگیرد، این کار باعث error می شود و عبارتclass sphere; کافی نیست !

حامد مصافی
یک شنبه 19 مهر 1388, 10:49 صبح
در جایی دیگر یعنی کجا؟
توجه کنید این یک تعریف نیست بلکه "اعلان پیشرو" (Forward Declaration) است. در این خط وجود کلاسی با این نام به کامپایلر اعلان می شود، این کلاس بعداً تعریف خواهد شد (در دستور include).
شما به دو طریق می توانید یک کلاس را اعلان کنید. روش اول را جناب نیما معرفی کردند.
روش دوم به طریقه inline :



class media()
{
class sphere c_var;
}

اگر احساس می کنید متوجه منظورتان نشده ام لطفاً مشکل خود را واضح تر بیان کنید.