有人可以解释为什么下面代码的结果是 "class B::1" 吗?
为什么派生类的虚方法使用基类的默认参数而不是他自己的?对我来说,这很奇怪。提前致谢!
代码:
#include <iostream>
using namespace std;
class A
{
public:
virtual void func(int a = 1)
{
cout << "class A::" << a;
}
};
class B : public A
{
public:
virtual void func(int a = 2)
{
cout << "class B::" << a;
}
};
int main()
{
A * a = new B;
a->func();
return 0;
}