Оператор присваивания в базовом классе, по-видимому, недоступен в производном классе. Учитывая этот код:
#include <iostream>
class A{
int value;
public:
A& operator=(int value){
this->value = value;
return *this;
}
};
class B : public A{};
int main(){
B b;
b = 0; // Does not work
return 0;
}
GCC 6.4 говорит:
ошибка: нет совпадения для 'operator =' (типы операндов: 'B' и 'int')
Что происходит?