Compartir a través de


Advertencia del compilador (nivel 4) C4626

'clase derivada': el operador de asignaciones se definió implícitamente como eliminado porque un operador de asignaciones es inaccesible o se ha eliminado

Se eliminó un operador de asignación o no está accesible en una clase base y, por tanto, no se generó para una clase derivada. Cualquier intento de asignar objetos de este tipo provocará un error del compilador.

De forma predeterminada, esta advertencia está desactivada. Vea Advertencias del compilador desactivadas de forma predeterminada para más información.

El ejemplo siguiente genera el error C4626 y muestra cómo corregirlo.

// 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
}