الوصول الفئة الأساسية FN مع نفس التوقيع من كائن فئة مشتقة
-
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();
لا تنتمي إلى StackOverflow