Quelqu'un peut-il expliquer pourquoi le résultat du code ci-dessous serait "class B :: 1"?Le code exécute la méthode de la classe dérivée, mais obtient le paramètre par défaut de la méthode de la classe de base
Pourquoi la méthode virtuelle de la classe dérivée utilise-t-elle le paramètre par défaut d'une classe de base et non le sien? Pour moi, c'est assez étrange. Merci d'avance!
code:
#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;
}
Merci pour la réponse rapide! – Aremyst