二进制表达式 cout 问题的无效操作数

Invalid operands to binary expression cout problem

本文关键字:无效 操作数 问题 表达式 cout 二进制      更新时间:2023-10-16
void Basket_LinkedList::print_cookies() const{
cout<<"**********cookies' basket**********"<<endl;
//list<Cookie> basket_list;
for (auto it=basket_list.begin(); it!=basket_list.end(); it++) {
if (it->get_size()==Cookie::CookieSize::small) {
//cout<<*it<<endl;
}
}
cout<<"**********cookies' basket**********"<<endl;
}

对于第一个,我收到错误,将行标记标记为//

(Invalid operands to binary expression ('std::__1::ostream')
(aka 'basic_ostream<char>')

第二个错误是:

'const std::__1::__list_const_iterator<Cookie, void *>::value_type'
(aka 'const Cookie')))

有人可以解释并帮助解决它吗?

当编译器声明它不知道如何使用插入运算符<<与您指定的类型一起使用时,会弹出这些类型的错误。 定义如下所示的函数将对您有所帮助。

ostream& operator<<(ostream& out, const Cookie& c){
out << c.some_field;
return out;
}