首页 > 代码库 > C++ 流畅接口
C++ 流畅接口
流畅接口(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++ 流畅接口
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。