|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 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;
- }
复制代码 |
|