C++ << >>运算符

问题描述:

我可以使用例如<<操作员输入我的名称如下:C++ << >>运算符

std::cout<<"My name is: "<<name<<std::endl; 

Wikipedia它提到了以下关于<<>>

在的上下文中作者通常将​<<​>>分别称为“put-to”或“stream insertion”和“get-from”或“stream extraction”操作符。

在上述示例代码,是不进行级联<<串联在C++中有一个特殊的运算符吗?

谢谢。

在这种情况下,并未实际发生。相反,每个字符串依次写入输出流。在这种情况下,该流恰好是标准输出。

如果你连接,你可以使用operator +。但是正如@tsellon所说,你的例子在技术上并不是串联 - 它是按顺序写入流中的。也许这种差异似乎很抽象,但其影响是非常真实的。

在C++中什么都没有得到特殊运算符。 std::ios(其派生)误用operator>>operator<<为了提供一个简单的方法来执行流操作:这两个操作符否则在C++中得到不同的语义。

操作员用来连接两个std::stringoperator+(但我认为在这种情况下,他们没有滥用:字符串operator+两者之间是做什么的我会期待)。

+0

+1,还应该注意的是在这个例子中```运算符返回的是它的第一个参数,这就是你可以链接它们的流。 – tobyodavies 2011-01-26 11:22:55

在iostreams的环境中,operator <<将数据插入到流中。流与它做什么是完全不同的故事。它可以连接字符串(如std::stringstream),但它也可能做一些完全不同的事情。