网创优客建站品牌官网
为成都网站建设公司企业提供高品质网站建设
热线:028-86922220
成都专业网站建设公司

定制建站费用3500元

符合中小企业对网站设计、功能常规化式的企业展示型网站建设

成都品牌网站建设

品牌网站建设费用6000元

本套餐主要针对企业品牌型网站、中高端设计、前端互动体验...

成都商城网站建设

商城网站建设费用8000元

商城网站建设因基本功能的需求不同费用上面也有很大的差别...

成都微信网站建设

手机微信网站建站3000元

手机微信网站开发、微信官网、微信商城网站...

建站知识

当前位置:首页 > 建站知识

怎么进行STL函数对象与函数指针的比较-创新互联

怎么进行STL函数对象与函数指针的比较,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

创新互联建站是一家集网站建设,高台企业网站建设,高台品牌网站建设,网站定制,高台网站建设报价,网络营销,网络优化,高台网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。

一、函数对象、函数指针的定义和使用

      二者定义方式不同,使用方式相同。

#include 
using namespace std;

//function object
class obj_Add
{
public:
	int operator() (int val1, int val2)
	{
		return val1 + val2;
	}
};

//function pointer
int fun_Add(int val1, int val2)
{
	return val1 + val2;
}


int main(int argc, char *argv[])
{
	//function object
	obj_Add obj_add;
	cout<

二、函数对象、函数指针的区别

2.1 函数对象内可以携带附加数据,函数指针不行

      见博客《STL函数对象:定义、及其在STL中的应用》中的2.2节。

      http://blog.csdn.net/guowenyan001/article/details/10017799

2.2 函数对象可以用来封装类成员函数指针

#include 
using namespace std;

//function object
template 
class fun_Obj
{
public:
	fun_Obj(void (T::*f)(char *), T* t)
		: pFunc(f), m_t(t) { }

public:
	void operator() (char* name)
	{
		(m_t->*pFunc)(name);
	}

private:
	void (T::*pFunc)(char *);
	T* m_t;
};

//
class output_Obj
{
public:
	void output(char* name)
	{
		cout<<"Hello "< fun_obj(&output_Obj::output, &output_obj);
	fun_obj("world.");


	return 1;
};

三、让一个函数既接受函数指针,又接受函数对象,最简单的方法就是使用模板。

#include 
using namespace std;

//function object
class great
{
public:
	great(int val) : m_val(val) { }

public:
	bool operator() (int val)
	{
		return val > m_val;
	}

private:
	int m_val;
};

//function pointer
bool great10(int val)
{
	return val > 10;
}

//function
template 
int count_n(int* arr, int n, FUNC func)
{
	int count = 0;
	for(int i=0; i

关于怎么进行STL函数对象与函数指针的比较问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注创新互联行业资讯频道了解更多相关知识。


网站标题:怎么进行STL函数对象与函数指针的比较-创新互联
转载来于:http://bjjierui.cn/article/dcgeji.html

其他资讯