在C ++中,我们通常使用许多<<
运算符输出到控制台,如下所示:
cout << "x = " << x; // Output, for ex: x = 5
我知道每个<<
运算符再次返回cout
,代码应该类似于:
some_class& do_some_thing(int x) {
// process or print x
return *this;
}
但是我不知道这种技术或模式叫什么,在什么情况下我们应该使用它?
这种技术是否应该在另一种编程语言上实现,例如C#,我将其用于我的工作。
答案 0 :(得分:4)
它被称为Method Chaining。作为一个例子,有一个boost库,它提供了一种链接方式,在进行大括号初始化之前分配到容器中(Boost.Assignment):
vector<int> v;
v += 1,2,3,4,5,6,7,8,9;
typedef pair< string,string > str_pair;
deque<str_pair> deq;
push_front( deq )( "foo", "bar")( "boo", "far" );
通常情况下,您会在其他语言中看到更多内容,例如提供fluent interface。在流式传输之外,我在C ++中没有看到那么多。