什么是<&书信电报;C+中的运算符+;? 我从C语言和java背景中进入C++,我试图理解 > />代码> >一般>代码> 操作符具有相同的含义。但是,在您给定的情况下,它们分别是流写入和读取运算符。具体来说,是读操作符(指向远离流)

什么是<&书信电报;C+中的运算符+;? 我从C语言和java背景中进入C++,我试图理解 > />代码> >一般>代码> 操作符具有相同的含义。但是,在您给定的情况下,它们分别是流写入和读取运算符。具体来说,是读操作符(指向远离流),c++,function,operators,C++,Function,Operators,它们通过重载运算符来处理。特别是,C++的范例是为代码> >代码> >代码> >代码> >代码> ISTRAM/ S来处理输入和输出。C++没有内置的范式:代码> toStRew()/ java和c*ydo.< /p> 最后,std::cout、std::cin和std::cerr分别是ostream、istream和ostream的实例,这就是它们获得和重载的原因 例如,以下代码将Hello World输出到标准输出流 std::cout << "Hello World" <

它们通过重载
运算符来处理。特别是,C++的范例是为代码> >代码> >代码> >代码> >代码> ISTRAM/<代码> S来处理输入和输出。C++没有内置的范式:代码> toStRew()/<代码> java和c*ydo.< /p> 最后,
std::cout
std::cin
std::cerr
分别是
ostream
istream
ostream
的实例,这就是它们获得
重载的原因

例如,以下代码将
Hello World
输出到标准输出流

std::cout << "Hello World" << std::endl;

std::cout在I/O流的情况下,
运算符被重载,以表示位移位以外的内容。例如,STD::OFSUCT::操作员< P>就我所记得的,C++有流
>用于从流中提取数据
当然,您可以使用不仅仅是流的类来实现这一点

是右移位运算符,就像在Java和C中一样


然而,另外,
您没有准确地解释它,但我相信您的困惑在于您认为
std::cout
是一个函数,您想知道为什么不这样称呼它:

std::cout("Hello World");
嗯,
std::cout
不是一个函数。该语句中的函数为C和C++中的代码>运算符> P>运算符过载以实现流式API。

对象STD::cOUT确实使用了这些代码,输入和输出是在C++上的任何一本书或教程中最先做的事情之一。看看那些。只有一个注意到

>
/
也许你应该解释一下它们的作用。这看起来没什么帮助。@CrazyCasta:“没有帮助”?我正在研究一个小示例,但我认为区分移位运算符及其重载兄弟,以及为
std::ostream
提供指向所有重载的链接,是很有帮助的。“是指位移位以外的内容吗?”?为什么不直接说用于读/写流呢?@CrazyCasta:因为那太具体了。当然,这是最常见的用法,但我认为更重要的是,它们只是重载函数,可以实现任何类型和任何目的。你可以添加一个
操作符“operatorYeah,我意识到这有点太晚了。然后我担心修复这一差异所需的手术会混淆OP.Pandiux,如果你正在阅读这篇文章,请替换“Hello World”“数字为10,
const char*
int
,这应该是正确的。+1是唯一一个注意到cout作为函数(如write或类似)而不是对象的误导性解释的人
std::cout << "Hello World" << std::endl;
#include <string>
#include <iostream>

class my_type {
public:
    my_type(const std::string &name) : _name(name) { }
    const std::string &get_name() const { return _name; }
private:
    std::string _name;
};

std::ostream& operator<< (std::ostream& out, const my_type &foo ) {
    return out << foo.get_name();
}

int main() {
    my_type m("foo");
    std::cout << m;   // prints "foo"
    return 0;
}
std::cout("Hello World");
std::cout << "Hello World";
std::cout << "Hello World";
std::cout.operator<<("Hello World");
operator<<(std::cout, "Hello World");
int x = myFunction();
std::cout << x;
std::cout << myFunction();