ostream 运算符<<错误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"的右侧操作数的运算符(或者没有可接受的转换(。

你通常这样做

作为friend并实现如下:

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

相关内容

最新更新