Поделиться через


Предупреждение компилятора (уровень 4) C4626

"производный класс": не удалось создать оператор присваивания, так как оператор присваивания для базового класса недоступен или удален

Оператор присваивания был удален или недоступен для базового класса, поэтому он не был создан для производного класса. Любая попытка назначить объекты этого типа приведет к ошибке компилятора.

Это предупреждение отключено по умолчанию. Подробнее: Выключенные по умолчанию предупреждения компилятора .

В следующем примере показано возникновение ошибки C4626 и приводятся сведения по ее устранению.

// C4626
// compile with: /W4
#pragma warning(default : 4626)
class B
{
// public:
   B& operator = (const B&)
   {
      return *this;
   }
};

class D : public B
{

}; // C4626 - to fix, make B's copy constructor public

int main()
{
   D m;
   D n;
   // m = n;   // this line will cause an error
}