Funtores en C++

Muhammad Husnain 12 octubre 2023
  1. Introducción a los Funtores en C++
  2. Funtores con parámetros en C++
  3. Funtores predefinidos en C++
Funtores en C++

Este tutorial trivial presenta los funtores y su uso en el lenguaje de programación C++. Primero, este artículo presentará brevemente los funtores y luego avanzará hacia su sintaxis y usabilidad.

Introducción a los Funtores en C++

Los funtores son los objetos de clase que pueden comportarse como funciones. Hay numerosos funtores disponibles en la biblioteca de plantillas estándar (STL) de C++, y también puede crear los suyos propios.

La principal ventaja de los funtores es que, aunque no son funciones, aún pueden guardar el estado ya que son objetos de clase.

Los funtores se hacen sobrecargando el operador () en cualquier clase para que el objeto de esa clase pueda ser llamado, como llamamos a una función simple.

Veamos el siguiente ejemplo para tener una comprensión clara.

class Hello {
 public:
  void operator()() { cout << "Hello from Functor" << endl; }
};

Ahora para usar esto, crearemos un objeto de la clase Hello y lo llamaremos así:

int main() {
  Hello hello;
  hello();
  return 0;
}

Producción :

Hello from Functor

Podemos ver en la salida que el operador de llamada de función () se llama cuando usamos el objeto con el operador.

Funtores con parámetros en C++

Los funtores también se pueden definir con algunos parámetros y tipo de retorno, al igual que las funciones. Podemos modificar el funtor anterior para incluir el parámetro en él.

class Hello {
 public:
  void operator()(string name) {
    cout << "Hello " << name << " from Functor" << endl;
  }
};

Para llamar a esto, también debemos pasar el parámetro.

int main() {
  Hello hello;
  hello("david");
  return 0;
}

Producción :

Hello david from Functor

Funtores predefinidos en C++

Se incluyen numerosos funtores en los archivos de encabezado funcionales que se empaquetan en la biblioteca de plantillas estándar de C++. Algunos de ellos se discuten aquí.

nombre del funtor Descripción
plus Calcula la suma de dos números pasados ​​como parámetros.
minus Calcula la diferencia entre dos números pasados ​​como parámetros.
multiplies Calcula el producto de dos números pasados ​​como parámetros.
divides Calcula el resultado de la división de dos números pasados ​​como parámetros.
equal_to Comprueba si los dos parámetros pasados ​​son iguales o no.
not_equal_to Comprueba si los dos parámetros pasados ​​no son iguales.
greater Comprueba si el primer parámetro es mayor que el segundo.
less Comprueba si el primer parámetro es menor que el segundo.
Muhammad Husnain avatar Muhammad Husnain avatar

Husnain is a professional Software Engineer and a researcher who loves to learn, build, write, and teach. Having worked various jobs in the IT industry, he especially enjoys finding ways to express complex ideas in simple ways through his content. In his free time, Husnain unwinds by thinking about tech fiction to solve problems around him.

LinkedIn