当前位置: 代码迷 >> 综合 >> C++Base-运算符重载-括号运算符重载详解
  详细解决方案

C++Base-运算符重载-括号运算符重载详解

热度:55   发布时间:2024-03-09 04:43:02.0

一、概念及基础

圆括号运算符()也可以重载,重载之后对象就可以使用圆括号运算符了。括号运算符只能被重载为类的非静态成员函数,不能重载为友元函数和普通函数。重载括号运算符函数的参数个数没有限制,甚至没有参数都可以。
 

重载格式:返回值  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;
}

 

  相关解决方案