Evo. G Tech Team Forum
Welcome to Evo. G Tech Team Forum. We have moved to a new website : www.evogtechteam.com

Thanks you.

by Evo. G Tech Team Management.

函数对象function object

View previous topic View next topic Go down

函数对象function object

Post by too wei on December 20th 2015, 09:15

函数对象
-使程序设计更加灵活
-能实现函数的inline调用,使性能加速

如果一个对象具有了某个函数的功能,我们称为函数对象
如何使对象具有函数功能呢?
只要为这个对象的操作符()进行重载就行了

换句话说
函数对象就是一个实现了operator()的类
函数对象可以储存数据,可以在函数时作为返回类型

废话不多说,看了代码就明白

Code:
#include <iostream>
#include <string>
using namespace std;

class funcobject //定义一个函数对象
{
public:
 funcobject(const char * name):str(name) {} //构造函数,传递一个参数过来
 bool empty() const
 {
 if(str.empty()) return true;
 }
 void operator()(char *name) //重载()运算符
 {
 if (!str.empty())
 {
 cout<<str; //打印私有的数据
 }
 
 cout<<name<<endl; //打印函数传递过来的参数
 }
private:
 string str;
};


int main()
{    
 funcobject obj("Hello"); //定义了一个函数对象类的一个对象,并传递了一个数据    
        obj(" World");     //调用obj对象的()函数,参数是world,所以这里打印了函数对象中的hello后再打印world
 obj(" Kitty");

 return 0;
}

too wei
Sponsor
Sponsor

Posts : 31
Points : 18951
Reputation : 0
Join date : 2015-04-21
Age : 19
Location : Johor

View user profile

Back to top Go down

View previous topic View next topic Back to top


 
Permissions in this forum:
You cannot reply to topics in this forum