我正在编写程序,我正在尝试重载到<<运营商。当我调试我的代码时,我收到一个错误,说p未初始化。我觉得好像我在for语句中初始化p,但我想我不是。似乎无法弄清楚我将如何初始化p。这是我收到错误消息的代码。任何建议?
ostream &operator <<( ostream &out, const LList & llist )
{
for( LList *p = p; p != 0; p = p -> next )
out << p;
return out;
}
答案 0 :(得分:6)
你正在用自己初始化p什么都没做,也许你的意思是把它指向传递给函数的llist参数?
也许是这样的?
for( const LList *p = &llist; p != 0; p = p -> next )
答案 1 :(得分:0)
ostream &operator <<( ostream &out, const LList & llist )
{
for(const LList *p = llist ; p != 0; p = p -> next )
out << p;
return out;
}
首先,您应该使用const而不是非const,其次 - 您需要将p分配给您发送的变量。
希望这会有所帮助,祝你有个美好的一天:)