¿Qué sucede si retorno una referencia?

0
0

Una llamada a una función puede aparecer en el lado izquierdo de un operador de asignación.

Esta característica puede parecer extraño al principio. Por ejemplo, nadie piensa que la expresión f() = 7 tiene sentido. Sin embargo, si a es un objeto de clase Array, la mayoría piensa que a[j] = 7 tiene sentido, pero a[j] es en realidad una llamada a una función (declarada como Array::operator[] (int), que es el operador de subíndice para la clase Array).

class Array
{
public:
   int size() const;
   float& operator[] (int index);
   ...
};
 
int main()
{
   Array a;
   for (int i = 0; i < a.size(); ++i)
     a = 7;    // Esta linea invoca a Array::operator[](int)
   ...
}

 

/*Tomado de C++ FAQ Lite*/

  • You must to post comments
An error occurred while importing content. Error: Class HTML_QuickForm_text does not have a constructor, so you cannot pass any constructor arguments