class A
{
A(int);
};
class B
{
B( int b )
: A(b)
{}
};class A
{
virtual void func();
};
class B : public A
{
virtual void func();
};
class C : public B
{
virtual void func()
{
... // какой-т код
A::func();
... /// ещё какой-то код
}
};
Суть такого написания в том, чтобы не копировать реализацию из базового класса в дочерний. Так что может визуально выглядит не очень красиво и понятно, но это лучше, чем дублирование кода. Это относится не только к оператору присваивние, а к абсолютно всем виртуальным функцям. По возможности нужно избегать дублирование кода (упрощает отладку и дальнейшую поддержку кода), а вот такой "странный" вызов сильно упрощает эту задачу.