View Full Version : سوال: صدا زدن تابعی از کلاس فرزند درون کلاس پدر
arbab333
چهارشنبه 15 دی 1395, 22:32 عصر
با سلام
چطور می توان یک تابع از کلاس فرزند را درون کلاس پدر صدا زد؟ مثلا کلاس D فرزند کلاس A است. و تابع C درون کلاس D تعریف شده،و تابع B تو کلاس A تعریف شده. میخاهیم تو تابع B از کلاس Aتابع C را فراخوانی کنیم. چجوری این کار رو کنیم؟؟؟؟؟؟؟؟؟؟؟
class A
{
B()
{
c()
}
}
class D:public A
{
c(){}
}
}
negative60
پنج شنبه 16 دی 1395, 03:45 صبح
به وسیله اشاره گر میتونید این کار رو انجام بدید
حامد مصافی
پنج شنبه 16 دی 1395, 09:28 صبح
تابع رو به صورت virtual تعریف کنید و در کلاس فرزند بازنویسیش کنید.
http://cpp.sh/9yvh
arbab333
پنج شنبه 16 دی 1395, 11:09 صبح
به وسیله اشاره گر میتونید این کار رو انجام بدید
با توجه به مثال ارائه شده چجوری این کار رو بکنم؟؟؟؟؟؟؟
arbab333
پنج شنبه 16 دی 1395, 11:12 صبح
تابع رو به صورت virtual تعریف کنید و در کلاس فرزند بازنویسیش کنید.
http://cpp.sh/9yvh
من میخام تابع B از کلاس پدر اجرا بشه و در انتهای آن تابع C از کلاس فرزند نیز اجرا بشه. فک کنم با virtual نمیشه, اگه میشه کدش چجوریه؟؟؟؟؟؟؟؟
negative60
پنج شنبه 16 دی 1395, 12:43 عصر
class Child;
class Father
{
Child *pChild;
public:
Father(Child *p);
void FatherAnswer();
};
class Child: public Father
{
public:
Child();
void Say(const char *text);
};
Father::Father(Child *p)
{
pChild = p;
}
void Father::FatherAnswer()
{
pChild->Say("salam farzandam :)");
}
Child::Child(): Father(this)
{
//child say:
Say("salam pedar");
//father say:
FatherAnswer();
}
void Child::Say(const char *text)
{
printf("%s\n", text);
}
arbab333
جمعه 17 دی 1395, 01:06 صبح
کدی که نوشتید رو استفاده کردم، درست جواب داد. ممنون:لبخندساده:
حامد مصافی
شنبه 18 دی 1395, 11:54 صبح
من میخام تابع B از کلاس پدر اجرا بشه و در انتهای آن تابع C از کلاس فرزند نیز اجرا بشه. فک کنم با virtual نمیشه, اگه میشه کدش چجوریه؟؟؟؟؟؟؟؟
لینک کد رو گذاشتم. همونجا هم میتونید اجراش کنید
vBulletin® v4.2.5, Copyright ©2000-1403, Jelsoft Enterprises Ltd.