Здравствуйте Vi2, Вы писали:
Vi2>Здравствуйте Alik, Вы писали:
A>>Объяснение этому факту очень простое: операторы не наследуются.
Vi2>Не "операторы не наследуются", а видимость оператор= перекрывается либо указываемым явно оператором= в дочернем классе либо генерируемым по умолчанию, если таковой не указан. Поэтому он не виден.
Vi2>Точно так же как перекрываются все перегруженные функции базового класса при указании хотя бы одной с таким именем в дочернем.
Согласен, формулировка не точная. Выдернутая из контекста она вообще получает свой достаточно общий и уже некорректный смысл. Но результат — что в лоб, что по лбу. Скажем так: поскольку для любого класса генерируется свой оператор присваивания (и это поведение компилятора вполне соответствует стандарту), класс наследник
всегда имеет свои оператор присваивания, отличный от родительского.
С уважением. Алик.