我正试图找出一种方法来解决这个错误数小时,遗憾的是我没有发现任何问题在这里找到我的解决方案。 这是一个圆形阵列。该节点由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'的右手操作数(或者没有可接受的转换)。
答案 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;
}