我有一个基类,其中包含虚函数 - int Start(bool)
在派生类中,有一个同名但签名不同的函数 -
int Start(bool, MyType *)
但不是虚拟的
在派生类的Start()
函数中,我想调用基类的Start()
函数。
int Derived::Start(bool b, MyType *mType)
{
m_mType = mType;
return Start(b);
}
但是它会出现编译错误。
"Start' : function does not take 1 arguments"
然而Base::Start(b)
起作用。
在C#中,上述代码可以正常工作,即不需要引用Base来解析调用。
如果外部调用如下:
Derived *d = new Derived();
bool b;
d->Start(b);
出现错误,信息如下:
Start : function does not take 1 arguments
但是在C#中,相同的情况却可以正常工作。
据我理解,虚拟机制不能用于解析调用,因为这两个函数具有不同的签名。
但是这些调用并没有按预期解析。
请帮忙。