¿Puede alguien explicar por qué el resultado del código siguiente sería "clase B :: 1"?El código ejecuta el método de clase derivado, pero obtiene el parámetro predeterminado del método de clase base
¿Por qué el método virtual de la clase derivada usa el parámetro predeterminado de una clase base y no el suyo? Para mí esto es bastante extraño. ¡Gracias por adelantado!
Código:
#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;
}
Gracias por la respuesta rápida! – Aremyst