1

我是使用 C++ for Windows 开发的新手。

我正在尝试生成一个具有指向其他结构的指针的结构...

这怎么可能?

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名为的类型的对象A。请注意,这typedef 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 回答