sencillos - sobrecarga de operadores relacionales en c++
C++: herencia y sobrecarga del operador (1)
El problema es que el compilador normalmente crea un operator=
para usted (a menos que proporcione uno), y este operator=
oculta el heredado. Puede anular esto mediante el uso-declaración:
struct Ftw : public Odp<int>
{
using Odp<int>::operator=;
bool operator==(const Ftw& rhs)
{
return m_t == rhs.m_t;
}
};
Tengo dos estructuras:
template <typename T>
struct Odp
{
T m_t;
T operator=(const T rhs)
{
return m_t = rhs;
}
};
struct Ftw : public Odp<int>
{
bool operator==(const Ftw& rhs)
{
return m_t == rhs.m_t;
}
};
Me gustaría recopilar lo siguiente:
int main()
{
Odp<int> odp;
odp = 2;
Ftw f;
f = 2; // C2679: no operator could be found
}
¿Hay alguna manera de hacer que esto funcione, o debo definir el operador en Ftw
también?