有人可以解釋爲什麼下面的代碼的結果是「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;
}
感謝您的快速回答! – Aremyst