在c ++中使用不同的参数重载虚函数

时间:2014-12-01 11:16:07

标签: c++

我想在c ++中使用不同的参数重载虚函数,但它不起作用。

virtual void Draw( int nDeltaX, int nDeltaY);
virtual void Draw( int nDeltaX, int nDeltaY, bool m_bFlag);
你能告诉我原因吗?

1 个答案:

答案 0 :(得分:5)

答案是 - 因为这就是C ++的工作方式。参数必须相同。 C ++ 11标准在10.3.2中说:

  

如果虚拟成员函数vf在类Base和Derived类中声明,直接或间接从Base派生,则成员函数vf具有相同的名称,参数类型列表(8.3.5),cv-声明了Base :: vf的限定和refqualifier(或不存在相同的),然后Derived :: vf也是虚拟的(无论是否如此声明)并覆盖11 1 Base :: vf。