小编Kha*_*lid的帖子

带参数作为类指针的虚函数

class A
{
      public:
             virtual void display_A(A* obja)
             {
                     cout<<"Class A"<<endl;
             }
};
class B:public A
{
      public:
             void display_A(B* objb)
             {
                     cout<<"Class B"<<endl;
             }
};

int main()
{
    A AOBJ;
    B BOBJ;
    A *obja = new B();
    obja->display_A(&AOBJ);
    obja->display_A(&BOBJ);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

A类中有一个虚函数,参数为as A*,我们在derived class Bwith参数中覆盖了相同的函数B*.

我创建了一个指向派生类对象的指针obja(指向类的指针A)B.当我display_Aobja带有参数的指针调用函数作为类A对象指针和类B对象指针时,我得到了o/p as

Class A
Class A
Run Code Online (Sandbox Code Playgroud)

我无法理解为什么我会得到那个o/p.

c++ overriding virtual-functions

2
推荐指数
1
解决办法
174
查看次数

标签 统计

c++ ×1

overriding ×1

virtual-functions ×1