当前位置: 首页 > news >正文

网站备案 更改ip网站主页图片设计

网站备案 更改ip,网站主页图片设计,项目名称有创意大全,怎么购买国外的域名http://www.cnblogs.com/yyxt/p/3987717.html 详细请看《C Primer plus》(第六版中文版) http://www.cnblogs.com/lvpengms/archive/2011/02/21/1960078.html 备注#xff1a; 函数对象#xff1a; 尽管函数指针被广泛用于实现函数回调#xff0c;但C还提供了一个重要的实现…http://www.cnblogs.com/yyxt/p/3987717.html 详细请看《C Primer plus》(第六版中文版) http://www.cnblogs.com/lvpengms/archive/2011/02/21/1960078.html 备注 函数对象 尽管函数指针被广泛用于实现函数回调但C还提供了一个重要的实现回调函数的方法那就是函数对象。函数对象也称“函数符”是重载了“()”操作符的普通类对象。因此从语法上讲函数对象与普通的函数行为类似。 用函数对象代替函数指针有几个优点 首先因为对象可以在内部修改而不用改动外部接口因此设计更灵活更富有弹性。函数对象也具备有存储先前调用结果的数据成员。在使用普通函数时需要将先前调用的结果存储在全程或者本地静态变量中但是全程或者本地静态变量有某些我们不愿意看到的缺陷。 其次在函数对象中编译器能实现内联调用从而更进一步增强了性能。这在函数指针中几乎是不可能实现的。 C11还提供了limbda表达式来实现函数的灵活调用。详见《C Primer Plus》第18章。 ---------------------------------------------------------------------------------------------------------------------------------------------------------- 【以下转自】http://www.cnblogs.com/hujian/archive/2012/12/07/2807605.html function是一组函数对象包装类的模板实现了一个泛型的回调机制。function与函数指针比较相似优点在于它允许用户在目标的实现上拥有更大的弹性即目标既可以是普通函数也可以是函数对象和类的成员函数而且可以给函数添加状态。声明一个function时需要给出所包装的函数对象的返回值类型和各个参数的类型。比如声明一个function它返回一个bool类型并接受一个int类型和一个float类型的参数可以像下面这样functionbool (int, float) f; 下面简要介绍一下function的比较重要的几个接口。 function(); 缺省构造函数创建一个空的函数对象。如果一个空的function被调用将会抛出一个类型为bad_function_call的异常。template typename F function(F g); 这个泛型的构造函数接受一个兼容的函数对象即这样一个函数或函数对象它的返回类型与被构造的function的返回类型或者一样或者可以隐式转换并且它的参数也要与被构造的function的参数类型或者一样或者可以隐式转换。注意也可以使用另外一个function实例来进行构造。这样做并且function g为空则被构造的function也为空。使用空的函数指针和空的成员函数指针也会产生空的function。如果这样做并且function g为空则被构造的function也为空。使用空的函数指针和空的成员函数指针也会产生空的function。 template typename F function(reference_wrapperF g); 这个构造函数与前一个类似但它接受的函数对象包装在一个reference_wrapper中用以避免通过值来传递而产生函数或函数对象的一份拷贝。这同样要求函数对象兼容于function的签名。function operator(const function g); 赋值操作符保存g中的函数或函数对象的一份拷贝如果g为空被赋值的函数也将为空。templatetypename F function operator(F g); 这个泛型赋值操作符接受一个兼容的函数指针或函数对象。注意也可以用另一个 function 实例(带有不同但兼容的签名)来赋值。这同样意味着如果g是另一个function实例且为空则赋值后的函数也为空。赋值一个空的函数指针或空的成员函数指针也会使function为空。bool empty() const; 这个成员函数返回一个布尔值表示该function是否含有一个函数或函数对象。如果有一个目标函数或函数对象可被调用它返回 false 。因为一个function可以在一个布尔上下文中测试或者与0进行比较因此这个成员函数可能会在未来版本的库中被取消你应该避免使用它。void clear(); 这个成员函数清除 function, 即它不再关联到一个函数或函数对象。如果function已经是空的这个调用没有影响。在调用后function肯定为空。令一个function为空的首选方法是赋0给它clear 可能在未来版本的库中被取消。result_type operator()(Arg1 a1, Arg2 a2, ..., ArgN aN) const; 调用操作符是调用function的方法。你不能调用一个空的 function 那样会抛出一个bad_function_call的异常。调用操作符的执行会调用function中的函数或函数对象并返回它的结果。下面分别给出使用function来包装普通函数函数对象和类的成员函数的参考代码。1、普通函数1 int Add(int x, int y) 2 3 { 4 return xy; 5 } 6 functionint (int,int) f Add; 7 int z f(2, 3); 2、函数对象 1 class CStudent2 {3 public:4 void operator() (string strName, int nAge)5 {6 cout strName : nAge endl; 7 }8 };9 10 CStudent stu; 11 functionvoid (string, int) f stu; 12 f(Mike, 12); 3、类的成员函数 1 struct TAdd2 {3 int Add(int x,int y)4 {5 return xy;6 }7 };8 9 functionint (TAdd *, int, int) f TAdd::Add; 10 TAdd tAdd; 11 f(tAdd, 2, 3); // 如果前面的模板参数为传值或引用直接传入tAdd即可 接下来我们来看看使用function来保存函数对象状态的情况。考虑下面的代码 1 class CAdd2 {3 public:4 CAdd():m_nSum(0) { NULL; }5 int operator()(int i)  //重载 运算符6 {7 m_nSum i;8 return m_nSum;9 } 10 11 int Sum() const 12 { 13 return m_nSum; 14 } 15 16 private: 17 int m_nSum; 18 }; 19 20 int main() 21 { 22 CAdd add; 23 functionint (int) f1 add; 24 functionint (int) f2 add; 25 cout f1(10) , f2(10) , add.Sum() endl; 26 return 0; 27 } 可能和大家想象的结果不一样上面程序的输出是10,10,0。我们将同一个函数对象赋值给了两个function然后分别调用了这两个function但函数对象中m_nSum的状态并没有被保持问题出在哪儿呢这是因为function的缺省行为是拷贝一份传递给它的函数对象于是f1和f2中保存的都是add对象的拷贝调用f1和f2后add对象中的值并没有被修改。C 11中提供了ref和cref函数来提供对象的引用和常引用的包装。要使function能够正确地保存函数对象的状态我们可以这样来修改代码 1 CAdd add; 2 functionint(int) f1 ref(add); 3 functionint(int) f2 ref(add); 另外在两个function之间赋值时如果源function保存的是函数对象的拷贝则目标function保存的也是函数对象的拷贝如果源function保存的是函数对象的引用则目标function保存的也是函数对象的引用。
http://www.pierceye.com/news/449867/

相关文章:

  • 买下云服务器怎么做网站官方网站怎么查询
  • 手机版企业网站php西宁做网站公司排名
  • 微网站如何做推广做淘宝客网站需要备案吗
  • 天津网站制作重点windows与wordpress
  • 可以查企业备案的网站吗佛山住房和城乡建设部网站官网
  • 和初中生做视频网站怎么进入追信魔盒网站开发软件
  • 邯郸开发网站有哪些阳江市房产信息网
  • 快速网站推广公司丹阳房产网二手房
  • 做一个卖东西的网站黄村做网站的公司
  • 网站增长期怎么做广州seo推广优化
  • 怎么做拍卖网站吗免费网站推广入口
  • 农产品网站建设的主要工作岳阳seo招聘
  • 每年网站备案抽查惠州营销网站建设
  • 四川网站建设seo友汇网网站建设
  • 企业家居网站建设做公司网站方案
  • 特性设计的网站营销型网站建设的五力原则
  • 网站布局设计工具装修室内设计培训学校
  • 哈尔滨网络科技公司做网站中国建设官方网
  • 紫川网站建设做画找图网站
  • 郑州快速建站公司合肥学做网站app的学校
  • 除了做视频网站还能做什么网站wordpress手机站如何做
  • 域名注册最好的网站人才网站
  • 网站建设咨询云尚网络中铁十二局出国招工
  • 建站系统推荐做网站在哪里做
  • 贵州建设工程招标协会网站wordpress黑白主题
  • 怎么免费建立自己网站扁平化网站设计
  • 可以自己做漫画的网站北仑营销型网站制作
  • 免费网站统计代码有什么样的网站开发
  • 文山微网站建设湖南人工智能建站系统软件
  • 做网站时候编代码wordpress 技术博客主题