2011-03-27 84 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