1) Правомочно ли замена значений по умолчанию в производных классах,
2) Регламентировано ли как то поведение , если правомочно (в моем примере
вызов метода через указатель s выдает 2, а метода через указатель p — 1)
#include <iostream>
class any
{
public:
virtual void doit(long a = 1) = 0;
};
class son : public any
{
public:
virtual void doit(long a = 2)
{
std::cout << a << std::endl;
}
};
int main()
{
any* p = new son();
son* s = new son();
p->doit();
s->doit();
}
1
2
delete — ok
Веру-ю-у! В авиацию, в научную революци-ю-у, в механизацию сельского хозяйства, в космос и невесомость! Веру-ю-у! Ибо это объективно-о! (Шукшин)