#include<iostream> using namespace std; class Point { private: int x, y; public: Point() : x(0), y(0) { } Point& operator()(int dx, int dy); void show() {cout << "x = " << x << ", y = " << y; } }; Point& Point::operator()(int dx, int dy) { x = dx; y = dy; return *this; } int main() { Point pt; pt(3, 2); pt.show(); return 0; }
(A) x = 3, y = 2
(B) Error del compilador
(C) x = 2, y = 3
Respuesta: (A)
Explicación: Este es un ejemplo simple de sobrecarga del operador de llamada de función.
El operador de llamada de función, cuando está sobrecargado, no modifica cómo se llaman las funciones. Más bien, modifica cómo debe interpretarse el operador cuando se aplica a objetos de un tipo determinado.
Si sobrecarga un operador de llamada de función para una clase, su declaración tendrá la siguiente forma:
return_type operator()(parameter_list)
Publicación traducida automáticamente
Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA