马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 qq1242009750 于 2020-1-27 19:37 编辑
仿函数与类型转换函数
[u]什么是仿函数呢?就是使一个类的使用看上去象一个函数。其实现就是类中实现一个operator,这个类就有了类似函数的行为,就是一个仿函数类了。[/u]
下面我们来举一个相加的例子: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;
}
|