0
node *temp; 
temp->dataItem = newPassenger;
if(size == 0)
{
    Head = temp;
    Tail = temp;
}
else
{
    Tail->nextNode = temp;
    Tail = temp;
}
size++;

VSが初期化されていないと言い続けるのでtemp、私は助けが必要です.C ++の経験はほとんどありません. 私のノードクラスは次のとおりです

#include "passenger.h"
#pragma once
class node
{
public:
    node();
    passenger dataItem;
    node * nextNode;
};
4

3 に答える 3

1

C++の入門書をもっと読む必要があります。これは通常、かなり早い段階でカバーされます。

あなたは書くべきです

node *temp = new node;

これにより、メモリ内のノード用のスペースが予約されます。このノードを使い終わったら、次のように記述します。

delete temp;

プログラムがクラッシュする原因となるため、何かを2回削除しないように注意する必要があります。

于 2013-02-25T04:13:02.007 に答える
1
node *temp = new node; 
temp->dataItem = newPassenger;
if(size == 0)
{
    Head = temp;
    Tail = temp;
}
else
{
    Tail->nextNode = temp;
    Tail = temp;
}
size++;
于 2013-02-25T04:09:42.990 に答える
0
node *temp; 
temp->dataItem = newPassenger;

上記が実際にあなたのコードである場合、コンパイラはまったく正しいですtemp。初期化せずに逆参照しています。おそらく次のようなものが必要です。

node* temp = new node;
temp->dataItem etc...
于 2013-02-25T04:08:56.800 に答える