C++语言中函数对象的作用是什么

C++语言中函数对象的作用是什么,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

创新互联从2013年开始,先为集贤等服务建站,集贤等地企业,进行企业商务咨询服务。为集贤企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。

在C++语言的世界中有这样两个概念,向上类型转换,向下类型转换,分别描述的是子类向基类和基类向子类的强制类型转换,希望对C++语言的描述能给大家带来一些有用的信息。

一般而言,它是由一个重载了operator()的类所实例化得来的对象。 Function object的涵义比通常意义上的函数更广泛,因为它可以在多次调用之间保持某种“状态”——这和静态局部变量有异曲同工之妙;

不过这种“状态”还可以被初始化,还可以从外面来检测,这可要比静态局部变量强了。虽然传递函数指针被广泛应用于事件驱动系统

但 C++语言还是提供了另外一种可供选择的办法,即函数对象,利用它可以避免使用函数指针。这样做有几个优点。首先, 因为对象可以在内部修改而不用改动外部接口,因此设计更灵活,更富有弹性。

函数对象也具备有存储先前调用结果的数据成员。此外,编译器可以内联函数对象,从而进一步增强性能。函数对象可以具体表达依赖成员模板的通用算法 , 这些算法借助普通的函数指针难以完成。写个小示例:

#include "stdafx.h"         #include     #include          using namespace std;         class Action;    class Drink;    class Eat;    class TestAction;         class Action    {    public:              int operator()(int i)           {                  Act(i);                  return i;           }                virtual void Act(int i) = 0;    };         class Drink : public Action    {           void Act(int i)           {                  cout<<"No. "<

看完上述内容,你们掌握C++语言中函数对象的作用是什么的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注创新互联行业资讯频道,感谢各位的阅读!


当前文章:C++语言中函数对象的作用是什么
分享路径:http://scyanting.com/article/ppodpp.html