1

私はWindows用のC++で開発する初心者です..

他の構造体へのポインタを持つ構造体を作成しようとしています...

これはどのように可能ですか?

struct InitialNode {  
     Node * nextNode; 
     Node * lowerNode;
} InitialNode;

struct Node {  
     Node * nextNode; 
     Node * lowerNode;
     int value;
} Node;

Node * nextNode; の InitialNode 構造体でエラーが強調表示されています。および Node * lowerNode は..

何か案は?

事前にどうもありがとう:)

4

2 に答える 2

4

いくつかのエラーがあります:

まず、あなたがtypedef. Nodeまた、前に前方宣言する必要がありますInitialNode:

struct Node;
typedef struct InitialNode {  
     Node * nextNode; 
     Node * lowerNode;
} InitialNode;

typedef struct Node {  
     Node * nextNode; 
     Node * lowerNode;
     int value;
} Node;

あなたの構文

struct A
{
} A;

Aという名前のタイプのオブジェクトを作成しようとしますAtypedef structは C スタイルの宣言であり、C++ では必要ないことに注意してください。あなたは非常にうまく書くことができます:

struct Node;
struct InitialNode {  
     Node * nextNode; 
     Node * lowerNode;
};
struct Node {  
     Node * nextNode; 
     Node * lowerNode;
     int value;
};
于 2012-04-19T11:11:35.253 に答える
4

C++ では、識別子は宣言された後にのみ使用できます。これを試して:

struct Node {  
     Node * nextNode; 
     Node * lowerNode;
     int value;
};

struct InitialNode {  
     Node * nextNode; 
     Node * lowerNode;
} InitialNode;

Node前に定義InitialNodeすると問題が解決するはずです

于 2012-04-19T11:11:52.070 に答える