Я работаю на С++. Ниже приведен мой код:
#include <iostream>
using namespace std;
class base
{
public:
virtual void display(int a = 4)
{
cout << "base :: "<< a*a << endl;
}
};
class derived : public base
{
public:
void display(int b = 5)
{
cout << " Derived :: " << b*b*b << endl;
}
};
int main()
{
base *bobj;
derived dobj;
bobj = &dobj;
bobj->display();
return 0;
}
Результат:
Derived :: 64
Вызывается функция базового класса, но используется значение по умолчанию параметра производной функции. Почему метод производного класса display() принимает значение аргумента метода базового класса?