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*/
- Ivan Cachicatari asked 6 años ago
- You must login 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