我从 C# 和 Java 背景转为 C++,我正在努力理解 >>
& <<
运算符,例如 in
std::cout << "Hello World";
我在这里无法理解的是 <<
是什么运营商是为了。我尝试声明我自己的简单函数,它总是返回整数 5
我可以像在 C# 中那样调用它,
int x = MyFunction();
然后变成 x
进入5
, 但为什么我需要使用 std::cout
与 <<
?如果你能帮助我理解这两个 >>
的内容,我也将非常感激。和 <<
是为了。
感谢大家帮助我理解这一点。让我真正敞开心扉的是 std::cout 是对象 :)
最佳答案
你没有把它拼出来,但我相信你的困惑是你认为 std::cout
是一个函数,您想知道为什么不直接这样调用它:
std::cout("Hello World");
嗯,std::cout
不是函数。这条语句中的函数是operator<<
.
std::cout << "Hello World";
或者,更具体地说,函数是 std::ostream::operator<<(const char*)
.
您需要了解的是,运算符只是具有替代调用语法的函数。 operator<<
作为 std::ostream
的成员函数重载, 和 std::cout
是 std::ostream
的对象.所以这个:
std::cout << "Hello World";
另一种调用方式:
std::cout.operator<<("Hello World");
请注意 operator<<
是一个二元运算符,这意味着它有两个参数,如果它被声明为一个自由函数,一个参数如果它被声明为一个成员函数。当您使用替代调用语法时,左边的对象是第一个参数,右边的对象是第二个参数。在声明为成员函数的情况下,如本例所示,左边的对象是调用对象,右边的对象是参数。
如果它被声明为一个自由函数,它会是这样的:
operator<<(std::cout, "Hello World");
但是,无论是声明为成员还是自由函数,您仍然可以使用相同的替代调用语法。
关于c++ - C++ 中的 << 运算符是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12772076/