C2039:"E"不是错误的成员"Node"
C2039 :'E' is not a member of "Node" error
>E 是节点结构中的成员,但我仍然收到 C2039 错误? 这是我的代码:
#include "datastructures.h" //datastructures.cpp//
#include "utility.h"
#include "Functions.h"
bool enqueue(Queue &Q, enemy e){
Node *dptr = new Node;
if (dptr == NULL){
return false;
dptr->E = e; //C2039 here//
if (Q.rear == NULL){
Q.rear = Q.head = dptr;
return true;
}
dptr->next = NULL;
Q.rear = dptr;
return true;
}
}
有什么想法吗?
对不起,我忘了给出结构定义
struct Node{
enemy E;
Node *next;
};
struct enemy{
//starting x,y
int ID;
int T;
int Region;
int Distance;
float Health;
int Type;
int Pr;
int P;
};
您需要
在Node
之前定义enemy
,因为Node
具有该类型的成员,并且在声明成员类型时必须完整。
在另一个结构中使用结构时,必须首先声明包含在另一个结构中的结构。在这种情况下,作为结构节点成员的结构敌人必须在结构节点上方声明。这使结构节点能够知道结构敌人是什么或其所有成员。
struct enemy{
//starting x,y
int ID;
int T;
int Region;
int Distance;
float Health;
int Type;
int Pr;
int P;
};
struct Node{
enemy E; //struct enemy is defined before used here
Node *next;
};
相关文章:
- 静态数据成员的问题-修复链接错误会导致编译器错误
- 获取 C2039:"交换":不是成员错误,如何解决?
- 在C 中获取Invalig使用非静态数据成员错误
- 非静态数据成员错误的使用无效
- 是非静态数据成员错误的CPPReference定义
- C++ 使用 & 从数组中的对象创建指针成员 [错误]
- C++,类:成员错误的行外声明
- 打印矢量成员.错误
- 可视化解决VS 2003中指向成员错误的c++指针
- 使用 '&' 创建指向成员错误的指针
- 无法访问在类"QReadWriteLock"中声明的私有成员错误 1 错误 C2248:'QReadWriteLock::QReadWriteLock'
- 如何修复MacOSX上全局命名空间中缺少时间相关的无成员错误
- 我的错误,还是英特尔编译器的错误?非静态成员错误的大小
- 链表访问私有成员错误C2248
- 模板友元函数 C++ 中无效使用非静态数据成员错误
- 使用 '&' 创建指向成员错误的指针
- c++友元函数不能访问私有成员;错误2248
- c++中的静态成员错误
- 类模板的静态成员错误
- 修改 int 类型的结构的成员错误:从 'int' 到 'const char*' [-fallowive] 的