Compartir vía


Advertencia del compilador (nivel 1) C4621

no se encontró ninguna forma postfija de "operator--" para el tipo "type"; con la forma de prefijo

No había ningún operador de decremento postfijo definido para el tipo dado. El compilador usa el operador prefijo sobrecargado.

Esta advertencia puede evitarse definiendo un operador -- postfijo. Cree una versión de dos argumentos del operador -- tal como se muestra a continuación:

// C4621.cpp
// compile with: /W1
class A
{
public:
   A(int nData) : m_nData(nData)
   {
   }

   A operator--()
   {
      m_nData -= 1;
      return *this;
   }

   // A operator--(int)
   // {
   //    A tmp = *this;
   //    m_nData -= 1;
   //    return tmp;
   // }

private:
   int m_nData;
};

int main()
{
   A a(10);
   --a;
   a--;   // C4621
}