码迷,mamicode.com
首页 > 编程语言 > 详细

C++ 流畅接口

时间:2017-05-15 13:01:37      阅读:270      评论:0      收藏:0      [点我收藏+]

标签:pen   ...   target   类型   引用   div   函数   span   函数调用   

流畅接口(Fluent Interface),第一次见是在看 RapidJSON 的 wiki 时看见的。

意为返回自己的引用,这样可以不间断地调用一个函数多次。

1 template<typename T>
2 class Array{
3     ...
4     Array &push_back(const T& value){
5         ...
6         return *this;
7     }
8 };

这样插入操作的时候,就可以

1 Array<int> arr;
2 arr.push_back(1).push_back(2);

这只是简单的用法。

 

之前看到过一个问题,如何在 C++ 中实现这种函数调用效果:

1 if ( add(3)(4)(10) == 17 )
2     return true;

我的方法是用 operator() 重载 + 隐式类型转换:

 1 class Add{
 2 public:
 3     Add():sum(0){}
 4     Add &operator() (int value){
 5         sum += value;
 6         return *this;
 7     }
 8     operator int(){
 9         return sum;
10     }
11 private:
12     int sum;
13 };
14 
15 int
16 main(void){
17     if (add(3)(4)(10) == 7)
18         cout << "True" << endl;
19     else
20         cout << "False" << endl;
21     return 0;
22 }

 

C++ 流畅接口

标签:pen   ...   target   类型   引用   div   函数   span   函数调用   

原文地址:http://www.cnblogs.com/daghlny/p/6855718.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!