以下のコードの結果が「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;
}