2011-03-27 78 views
1

我一直在努力與一個鏈接器錯誤,我似乎無法弄清楚, 我正在實施bellman福特算法作爲我的功課的一部分。幫助C++鏈接器錯誤

下面是我寫到目前爲止, 這將會是巨大的,如果有人可以解釋爲什麼我得到這個錯誤, 我貼我在Mozilla引擎收錄代碼的代碼,這兩個文件是 圖。 H:http://pastebin.mozilla.org/1193147 和bellman_ford.cpp:http://pastebin.mozilla.org/1193148

所有的解決方案將是最讚賞和感謝的人取出了寶貴的時間來幫助我。

+3

接收者錯誤是什麼? – 2011-03-27 17:32:57

回答

3

您沒有執行Vertex::Vertex()Edge::Edge() - 只聲明它們。

這樣實現它們:

class Vertex 
{ 
    private: 
    char vertex_name; 
    public: 
    Vertex() {} 
... 


class Edge 
{ 
    private: 
    Vertex source,destination; 
    int weight; 
    public: 
    Edge() {} 
... 

您還可以,如果你有graph.h從多個CPP文件出現錯誤。您應該將您的成員函數的主體移動到graph.cpp文件中,而不是像您那樣在頭中實現它們。

+0

你向我解釋了我的錯誤的確切來源, 我非常感謝你指出。 我比較新的c + +,不知道如何分離頭文件和cpp文件,如你所說, 我會谷歌,試試看。 再次感謝您的輸入 – nikhil 2011-03-29 13:20:52

0

你忘了實現Vertex的構造函數。

class Vertex 
{ 
    private: 
    char vertex_name; 
    public: 
    Vertex() { }; 

    Vertex(char n) 
    { 
     vertex_name = n; 
    } 
//Method signatures 
    char get_name(); 
}; 
+0

感謝您抽出寶貴時間幫助我, 我真的很感激它, 我不能投票答案,因爲我沒有必要的聲譽,但非常感謝。 – nikhil 2011-03-29 13:16:54