c++ - C++ 中的 << 运算符是什么?

标签 c++ function operators

我从 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::coutstd::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/

相关文章:

c++ - DirectShow - 如何确定流是否有效(C++)

javascript - 我如何使用扩展器和收集运算符在 ES6 中实现以下功能?

c++ - 运算符重载的基本规则和惯用法是什么?

c++ - 如何使用指针找到两个排序数组的并集?

c++ - 如何在包含指向元素的指针的集合中找到元素?

R cummax函数与NA

vb.net - 在 VB.NET 中定义 F# 函数

scala - #> 运算符在 Scala Lift 中是什么意思?

haskell - 在 Haskell 中编写数学表达式的惯用方式

c++ - 使用可变参数模板类型描述函数参数