Qualcuno può spiegare perché il risultato del codice seguente sarebbe "classe B :: 1"?esegue il metodo della classe derivata, ma ottiene il parametro predefinito dal metodo della classe base
Perché il metodo virtuale della classe derivata utilizza il parametro predefinito di una classe base e non il proprio? Per me è abbastanza strano. Grazie in anticipo!
Codice:
#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;
}
Grazie per la risposta veloce! – Aremyst