Почему операторы присваивания родительского класса недоступны из объектов производного класса

Пример:

class C
{
  public:
    void operator =(int i) {}
};

class SubC : public C
{
};

Следующее дает ошибку компиляции:

SubC subC;
subC = 0;

"нет совпадения для 'operator=' в 'subC = 0'

Некоторые источники утверждают, что это происходит потому, что операторы присваивания не наследуются. Но не потому ли, что созданное по умолчанию копирование-назначение SubCзатмевает их?

6
задан doc 9 April 2012 в 00:24
поделиться