以下のコードの結果が "クラス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;
}
ありがとうございました! – Aremyst