Помогите с ошибкой компоновщика C ++ - PullRequest
1 голос
/ 27 марта 2011

Я боролся с ошибкой компоновщика, которую, кажется, не могу понять, я реализую алгоритм Беллмана Форда как часть моей домашней работы.

Вот код, который я написал до сих порбыло бы замечательно, если бы кто-то мог объяснить, почему я получаю эту ошибку, я вставил свой код в Mozilla pastebin, два файла это graph.h: http://pastebin.mozilla.org/1193147 и bellman_ford.cpp: http://pastebin.mozilla.org/1193148

Все решения будут оценены по достоинству, и спасибо людям за то, что они уделили мне драгоценное время, чтобы помочь мне.

Ответы [ 2 ]

3 голосов
/ 27 марта 2011

Вы не реализовали 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 голосов
/ 27 марта 2011

Вы забыли реализовать конструктор Vertex.

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

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