Aviso do compilador (nível 4) C4626
'classe derivada' : o operador de atribuição foi implicitamente definido como excluído porque um operador de atribuição de classe base está inacessível ou excluído
Um operador de atribuição foi excluído ou não acessível em uma classe base e, portanto, não foi gerado para uma classe derivada. Qualquer tentativa de atribuir objetos desse tipo causará um erro do compilador.
Esse aviso está desativado por padrão. Confira Avisos do compilador desativados por padrão para obter mais informações.
O exemplo a seguir gera C4626 e mostra como corrigi-lo:
// 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
}