Code前端首页关于Code前端联系我们

C++中operator()的实现及应用

terry 2年前 (2023-10-01) 阅读数 191 #c++
文章标签 数据库

一、operator()的概念

在C++中,operator()是一种特殊的运算符重载函数,被称为函数调用运算符。该运算符允许对象像函数一样被调用,因此,也称其为仿函数(Functor)。


class MyClass {
public:
  int operator() (int a, int b) {
    return a + b;
  }
};

MyClass myObj;
int result = myObj(10, 20);  // 相当于 myObj.operator()(10, 20);

在上面的例子中,MyClass类中重载了operator()运算符,使用对象名像函数一样调用myObj(10, 20)时,实际上是调用该类中的operator()函数,并传递参数10和20。

二、operator()的使用

使用operator()可以实现对象的可调用性,这为编程中提供了很多便利,如:

1. 函数对象

函数对象是一个类的实例,它的operator()运算符重载函数的参数和返回值,决定了该对象的调用方式和返回值。


class Compare {
public:
  bool operator() (int a, int b) {
    return a > b; // 实现从大到小排序
  }
};

std::set mySet; // 用Compare类自定义排序

mySet.insert(5);
mySet.insert(10);
mySet.insert(3);

for (auto it = mySet.begin(); it != mySet.end(); ++it) {
  std::cout 

版权声明

本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

热门