设为首页 加入收藏

TOP

8.7.4 函数对象模板
2013-10-07 16:08:56 来源: 作者: 【 】 浏览:72
Tags:8.7.4 函数 对象 模板

8.7.4  函数对象模板

定义函数对象的类一般是由模板来定义的,这么做的理由很明显,这样定义的函数对象能够使用各种实参类型。下面是之前看到过的Area类的模板:

  1. template<class T> class Area  
  2. {  
  3. public:  
  4. T operator()(const T length, const T width){ return length*width; }  
  5. }; 

此模板允许定义函数对象来计算任何数值类型尺寸的面积。可以将以前看到的printArea()函数定义为函数模板:

  1. template<class T> void printArea(const T length, const T width, Area<T> area)  
  2. { cout << "Area is " << area(length, width); } 

现在,可以像下面这样调用printArea()函数:

  1. printArea(1.5, 2.5, Area <double>());  
  2. printArea(100, 50, Area <int>()); 

函数对象广泛应用于标准模板库,这将在第10章学习,因此,我们将会看到在那种环境下有关函数对象用法的一些实用示例。

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇8.7.3 使用有多个形参的类模板(2.. 下一篇8.8 完美转发(1)

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·python数据分析岗的 (2025-12-25 10:02:21)
·python做数据分析需 (2025-12-25 10:02:19)
·成为一个优秀的pytho (2025-12-25 10:02:16)
·Java后端面试实习自 (2025-12-25 09:24:21)
·Java LTS版本有哪些 (2025-12-25 09:24:18)