C++ ostream 从对象数组返回数据

标签 c++ ostream

我的 ostream 有以下源代码

ostream& operator << (ostream& os, AnimalsDirectory& a) {
   for(int i=0;i<a.directorySize;i++) {
      return os << a.animals[i];
   }
}

当我编译这段代码时,它会产生以下错误:

ContactDir.cpp:64:1: warning: control may reach end of non-void 
function
  [-Wreturn-type]
}
^

我不知道为什么会出现此错误,我在对象动物数组上执行此操作并希望“<<”打印有关此数组所含内容的所有信息。 提前致谢!

最佳答案

看看你要实现的运算符方法是如何声明的。 您必须返回对 ostream 对象的引用,这是您在第一个参数中获得的对象。

其次,您的循环中有一个 return 语句,它将在第一个循环周期中退出该函数。你可能想要做的是这样的

ostream& operator << (ostream& os, AnimalsDirectory& a) {
    for(int i=0;i<a.directorySize;i++) {
       os << a.animals[i];
    }
    return os;
}

这要求每个动物对象也有 <<-operator implemented

关于C++ ostream 从对象数组返回数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47980458/

相关文章:

c++ - ostream 重载 for 循环,没有返回值

c++ - 将内容从 C FILE 传输到 C++ 流

c++ - 对多个字段的元素进行排序

c++ - 对同一对象同时使用 Map 和 List

c++ - 我应该什么时候返回 std::ostream?

C++ undefined symbol

c++ - 使用 ostream 和链接的运算符重载。为什么要通过引用返回?

c++ - 确定 minimax tic-tac-toe 中的正确位置

c++ - C++ 中具有用户可扩展类型参数的类型化类

c++ - 如何在 msvc 中编译和链接生成的文件?