i ++ Esto devuelve el valor de la i antes de que se incrementa. Entonces, la idea es que si desea usar i en una función y luego incrementar el valor después de usarlo, puede hacerlo en un solo paso. Como ejemplo, aquí es cómo sobrecargaría ese operador para enteros.
Integer Integer::operator++()
{
Integer returnValue = *this;
this->increment();
return returnValue;
}
Por lo tanto, incrementa el valor y luego devuelve lo que utiliza ser. Tampoco devuelve una referencia, porque devolver una referencia sería diferente de lo que se aprobó originalmente, lo que rompería en cascada.
++ i Esto incrementa el valor de i, y luego devuelve el nuevo valor. De modo que podría usar esto en una situación en la que desee incrementar i y luego usar el nuevo valor en su función.
Integer Integer::operator++(Integer i)
{
i.increment();
return i;
}
Así que el valor que devuelve es el valor incrementado de i.
A menos que esté hablando de un idioma específico, ++ siempre devuelvo el valor, no una referencia. – HoLyVieR
@all: estoy bastante seguro de que esto está bien como agnóstico del lenguaje. ¿Hay algún lenguaje que pueda devolver 'i ++' por referencia? Debo devolver un nuevo valor en la implementación de cualquier idioma. – Stephen
Basado en el contexto de la pregunta, supongo que está hablando de sobrecargar el operador ++ en C++. Una aclaración de la pregunta sería útil. – 5ound