c++ - 友元运算符 << 无需重载

标签 c++ overloading friend

我有一个复杂的类,我想操作符 << 可以打印它的私有(private)变量。

class complex
{
   double re, im;

   public:
   friend ostream operator <<(ostream &out); // What's wrong?
};

这可能吗?

最佳答案

您必须将两个参数传递给 operator <<() (对流对象的引用和对要流式传输的对象的引用)并且您通常总是希望 return对传入流的引用,以便您可以将输出传递给另一个调用 operator<<() .所以你需要这样的东西:

 friend ostream& operator <<(ostream &out, const complex& rhs);

关于c++ - 友元运算符 << 无需重载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33322183/

相关文章:

c++ - 无法使用 boost spirit 将值添加到 vector

c++ - 如何旋转然后朝那个方向移动?

c++ - std::vector 和 std::deque 之间的大小差异

c++ - 如何在多个类中使用友元函数

c++ - 覆盖运算符<<时的友元问题

文件打开和文件输出的 C++ 问题

haskell - 解决重载函数的歧义

java - Java 中的函数覆盖重载

c++ - 为什么在 ADL 中重载优先于显式特化

c++ - 与模板函数交友并避免虚函数/抽象基