我一直在努力解决一个我似乎无法弄清楚的链接器错误, 我正在实施贝尔曼福特算法作为我作业的一部分。
这是我到目前为止编写的代码, 如果有人能解释我为什么会收到这个错误,那就太棒了 我把我的代码粘贴在mozilla pastebin上,两个文件都是 graph.h:http://pastebin.mozilla.org/1193147 和bellman_ford.cpp:http://pastebin.mozilla.org/1193148
所有解决方案都将受到最高的赞赏,感谢人们花了宝贵的时间来帮助我。
答案 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();
};