0

我正在编写一个程序,我试图重载到 << 运算符。当我调试我的代码时,我收到一条错误消息,指出 p 未初始化。我觉得好像我在 for 语句中初始化 p,但我想我不是。似乎无法弄清楚我将如何初始化 p。这是我收到错误消息的代码。有什么建议吗?

ostream &operator <<( ostream &out, const LList & llist )
{

for( LList *p = p; p != 0; p = p -> next )
    out << p;

return out;
}
4

2 回答 2

6

你正在用它自己初始化 p ,它什么都不做,也许你的意思是把它指向正在传递给函数的 llist 参数?

也许是这样的?

for( const LList *p = &llist; p != 0; p = p -> next )
于 2013-02-20T22:12:35.003 回答
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 分配给您发送的变量。

希望这会有所帮助,祝你有美好的一天:)

于 2013-02-20T22:17:37.837 回答