الوصول الفئة الأساسية FN مع نفس التوقيع من كائن فئة مشتقة

StackOverflow https://stackoverflow.com/questions/1298750

  •  18-09-2019
  •  | 
  •  

سؤال

هل من الممكن الوصول إلى وظيفة فئة أساسية لها نفس التوقيع مثل وظيفة فئة مشتقة باستخدام كائن فئة مشتقة؟ إليك عينة لما ذكرته أدناه ..

class base1 {
public:
    void test()
    {cout<<"base1"<<endl;};
};

class der1 : public base1 {
public:
    void test()
    {cout<<"der1"<<endl;};
};

int main() {
der1 obj;
obj.test(); // How can I access the base class 'test()' here??
return 0;
}
هل كانت مفيدة؟

المحلول

تحتاج إلى تأهيل اسم الطريقة تماما كما يتعارض مع المرء الموروث.

استخدم obj.base1 :: اختبار ()

نصائح أخرى

لا يمكنك تجاوز طريقة في فئة مشتقة إذا لم تقدم كلمة رئيسية افتراضية.

class base1
{
    public:
        void test()
        {
            cout << "base1" << endl;
        };
};

class der1 : public base1
{
    public:
        void test()
        {
            cout << "der1" << endl;
        };
};

int main()
{
    der1 obj;
    obj.test(); // How can I access the base class 'test()' here??
    return 0;
}

لذلك الرمز أعلاه خطأ. عليك أن تعطي:

virtual void test();

في الفصل الأساسي الخاص بك

يمكنك استخدام هذا:

((base)obj).test();
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top