我想知道是否有另一种方法可以从derived而不是:
调用虚拟基本方法void Y() //is virtual in base
{
Base::Y();
}
如果这是重复的,我很抱歉。
答案 0 :(得分:0)
无论为什么您想要这样做,您都可以使用此备用语法实现相同的功能。您只需在解除引用变量时添加一些解析语法(使用.
运算符取消引用的非指针即可实现相同的目的)
#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" );
}