我有這個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