一、概念及基础
圆括号运算符()也可以重载,重载之后对象就可以使用圆括号运算符了。括号运算符只能被重载为类的非静态成员函数,不能重载为友元函数和普通函数。重载括号运算符函数的参数个数没有限制,甚至没有参数都可以。
重载格式:
返回值 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;
}