C++ 仿函数(圆括号运算符重载)与类型转换函数
本帖最后由 qq1242009750 于 2020-1-27 19:37 编辑仿函数与类型转换函数
什么是仿函数呢?就是使一个类的使用看上去象一个函数。其实现就是类中实现一个operator,这个类就有了类似函数的行为,就是一个仿函数类了。
下面我们来举一个相加的例子:
class CTest
{
public:CTest(int i = 0) :m_a(i) {};
//函数调用运算符
CTest operator()(const int n, const int x)
{
return CTest(n + x);
}
//类型转换把int 转为 const double 类型
operator const double()
{
return m_a;
}
private:
int m_a;
};
int main(void)
{
CTest t;
//仿函数运算符的调用
t(1, 2);
t.operator()(1, 2);
system("pause");
return 0;
}
页:
[1]