一、概念及基础
圆括号运算符()也可以重载,重载之后对象就可以使用圆括号运算符了。括号运算符只能被重载为类的非静态成员函数,不能重载为友元函数和普通函数。重载括号运算符函数的参数个数没有限制,甚至没有参数都可以。
重载格式:返回值 operator() ( 表达式表 )
二、简单示例
#include <iostream>using namespace std;//括号运算符只能重载为类的非静态函数//括号英文:brackets
class BracketsOperator
{
public:BracketsOperator(int num){m_nNum = num;}//输出数字;//功能函数;void operator()(int num){cout<<"num == "<<num<<endl;}//返回数值相加结果;//功能函数;//并且输出void operator()(int num1,int num2){cout<<"num1+num2 == "<<(num1+num2);}//
public:int m_nNum;
};int main(int argc,char** argv)
{//BracketsOperator bo(5);//输出成员变量值;bo(bo.m_nNum);//输出数值1;bo(1);//输出数值相加结果bo(1,2);return 0;
}