ostream operator<<错误C ++

时间:2018-05-03 18:47:36

标签: c++ c++11 visual-c++

我正试图找出一种方法来解决这个错误数小时,遗憾的是我没有发现任何问题在这里找到我的解决方案。 这是一个圆形阵列。该节点由3个成员组成:输入的数据,输入的描述和节点的年龄是旧的。 这是我的代码:

std::ostream &operator<<(std::ostream &os, Ringnode &node)
    {
        return os << "ringnode(age: " << node.oldage
                << ", description: " << node.des
                << ", data: " << node.symdata << ")";

}

des和symdata是类ringnode中的字符串私有成员,但oldage是一个整数。 我得到的错误如下:二进制'运算符':找不到运算符,它采用类型为'type'的右手操作数(或者没有可接受的转换)。

1 个答案:

答案 0 :(得分:1)

你通常做

作为friend并实施如下:

std::ostream& operator<<(std::ostream &os, const Ringnode& node)
{
        os << "ringnode(age: " << node.oldage
                << ", description: " << node.des
                << ", data: " << node.symdata << ")";
      return os;
}