我有这个C++类,有一个名为adj
的Node对象数组(我猜你不需要看到我的Node类的实现)无法编译C++代码:从'Node *'无效转换为'int'
class Graph {
public:
Node *adj;
bool *marked;
int nVertex, p;
int *distance;
void graph(int quantity);
bool is_marked();
void cleaner();
void newVertex(int value);
};
而且我有这种方法,它创建了一个节点nod
,并试图将其存储在第p位置adj
:
void Graph::newVertex(int value)
{
Node *nod = new Node(value);
adj[p++] = nod;
}
当我尝试编译此代码我碰到下面的错误消息:
invalid conversion from 'Node*' to 'int'
我看不到我在代码中做了什么错误。数组初始化对我和对象分配来说都是正确的。请帮我回答这个问题。
更新:为Node
类的代码:
class Node {
public:
int value, cost;
Node *next;
Node() {}
Node(int val) {
value = val;
next = NULL;
cost = 0;
}
};
UPDATE:这里我不能使用C++矢量。我很想去,但这是一个家庭作业的东西。在任何人认为我是作弊之前,请注意我并没有要求解决我的特定问题,而是要解决编译代码时遇到的问题。
提示:您宁愿要'std :: vector'...... –
2013-07-26 22:01:20
'adj'是指向'Node'的指针。你可以使它指向一个'Nodes'数组的元素。但是你不能指向'Node *'数组的元素。 – juanchopanza
显示节点 – Kevin