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

فراخوانی متد کلاس مشتق شده از کلاس والد

0 امتیاز

سلام. چطور میشه بدون اضافه کردن method2 به کلاس والد از بوجود آمدن خطا جلوگیری کرد؟

 

//Parent.h
class Parent
{
public:
    virtual void method1() = 0;
};

//Child.h
class Child : public Parent
{
public:
    virtual void method1(){cout << "inside function method1()" << endl;}
    virtual void method2(){cout << "inside function method2()" << endl;};    
};

int main( int argc, char** argv ){
    Parent* pa = new Child;
    pa->method1();
    pa->method2(); //Error, class Parent have no member bar
    return 0;
}

 

سوال شده بهمن 26, 1392  بوسیله ی spide (امتیاز 55)   4 11 15
دوباره تگ گذاری شد مهر 9, 1393 بوسیله ی BlueBlade
اینطور طراحی کلاس صحیح نیست .

1 پاسخ

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

می تونی cast کنی کلاس رو  :

    Child* p = dynamic_cast<Child*>(pa);
    p->method2(); 

 

پاسخ داده شده بهمن 26, 1392 بوسیله ی BlueBlade (امتیاز 15,315)   15 18 89
انتخاب شد بهمن 26, 1392 بوسیله ی مصطفی ساتکی
...