帮助解决C ++链接器错误

时间:2011-03-27 17:31:20

标签: c++ linker-errors

我一直在努力解决一个我似乎无法弄清楚的链接器错误, 我正在实施贝尔曼福特算法作为我作业的一部分。

这是我到目前为止编写的代码, 如果有人能解释我为什么会收到这个错误,那就太棒了 我把我的代码粘贴在mozilla pastebin上,两个文件都是 graph.h:http://pastebin.mozilla.org/1193147 和bellman_ford.cpp:http://pastebin.mozilla.org/1193148

所有解决方案都将受到最高的赞赏,感谢人们花了宝贵的时间来帮助我。

2 个答案:

答案 0 :(得分:3)

您没有实施Vertex::Vertex()Edge::Edge() - 它们只是声明了。

像这样实施它们:

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


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

如果您从多个cpp文件中包含graph.h,也会出现错误。您应该将成员函数的主体移动到graph.cpp文件中,而不是像标题一样在标题中实现它们。

答案 1 :(得分:0)

您忘记实现Vertex的构造函数。

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

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