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 に答える