我理解{+ 1}}字符在c ++中有various uses,但我无法理解下面的代码示例中的函数是什么(取自here)(不是在左边的参数中使用,但在&
中使用。
std ostream&
我想我理解&的使用当它表示函数参数内的引用传递时,但我看不出它在函数外面会做什么。
就我所见(这根本不是很远),std::ostream& operator<< (std::ostream &out, const Point &point)
{
// Since operator<< is a friend of the Point class, we can access Point's members directly.
out << "Point(" << point.m_x << ", " << point.m_y << ", " << point.m_z << ")";
return out;
}
是一个类,在实例化时,可以通过运算符std::ostream
来提供字符串等输出到控制台。然后上面代码中的<<
是对&out
的实例的引用(将是std::ostream
?),在函数内部被std::cout
等等,然后返回,以便可以执行多个point.m_x
操作。
我猜测&amp;的第一个例子字符以某种方式传达&lt;&lt;在std :: ostream中定义的运算符将以某种方式进行修改,以便允许它与示例Point类的成员一起运行,但我希望对此有更好的理解。
答案 0 :(得分:2)
这意味着你要返回对象的引用(在这种情况下,它是传入的同一个对象,out。)
这在链接中很有用,它可以让你做些什么 a&lt;&lt; b&lt;&lt; c ....无需创建相关对象的副本。
答案 1 :(得分:1)
我想我理解&amp;的使用当它表示函数参数中的引用传递时,但我无法看到它在函数外的作用。
这意味着该函数通过引用返回std::ostream
。