是否有另一种方法调用基方法从派生是虚拟的

Is there another way to call Base method from derived which is virtual

本文关键字:方法 派生 虚拟 另一种 调用 是否      更新时间:2023-10-16

我想知道是否有另一种方法可以从派生中调用虚拟基方法,而不是:

void Y() //is virtual in base
{
   Base::Y();
}

如果是重复的,我很抱歉。

无论您为什么要这样做,您都可以使用这种替代语法实现相同的功能。您只需为变量的解引用添加一些解析语法(通过.操作符的非指针解引用也可以实现相同的目的)

#include <iostream>
using namespace std;
class A
{
public:
    virtual void X( )
    {
        cout << "A::X()n";
    }
    virtual void Y( )
    {
        cout << "A::Y()n";
    }
};
class B : public A
{
public:
    virtual void X( )
    {
        cout << "B::X()n";
    }
    virtual void Y( )
    {
        cout << "B::Y()n";
    }
};
void main( )
{
    B* xb = new B( );
    A* xa = xb;
    xb->X( );
    xb->Y( );
    xa->X( );
    xa->Y( );
    xb->A::X( );
    xb->A::Y( );
    system( "PAUSE" );
}