В настоящее время я пытаюсь реализовать простой алгоритм поиска пути, и для него нужны ребра и узлы. Я хочу обработать реализацию в одном .h и одном .cpp файле. Прямо сейчас я получаю ошибку "ожидаемый конструктор, деструктор или преобразование типов перед ...".
Я уже пытался разделить оба класса на 2 .h и .cpp-файлы, но это тоже не сработало. Я перепробовал множество решений для этого сообщения об ошибке, но, похоже, ничего не работает, и я думаю, что что-то мне не хватает прямо сейчас.
Мой файл utilites.cpp выглядит примерно так
#include "utilities.h"
//Class Node
//Public
using namespace std;
Node::Node(string name)
{
this->name = name;
}
//Class Edge
//public
Edge::Edge(Node::Node nSource, Node::Node nTarget, int weight)
{
this->nSource = nSource;
this->nTarget = nTarget;
this->weight = weight;
}
и мои утилиты.h:
#ifndef UTILITIES_H
#define UTILITIES_H
#include <string>
#include <list>
class Node
{
public:
Node(std::string);
std::string name;
};
class Edge
{
public:
Edge(Node, Node, int);
Node nSource;
Node nTarget;
int weight;
};
#endif /* end of include guard: UTILITIES_H */
Если я просто использую Class Class, все работает.
Но если я захочу реализовать Class Edge с помощью Class Node, я получу ранее упомянутую ошибку. Я думаю, что это легко решить, но я просто не могу понять это.
Я должен сказать, что уже пробовал с
Edge::Edge(Node nSource, Node nTarget, int weight)
{
this->nSource = nSource;
this->nTarget = nTarget;
this->weight = weight;
}
но это только что дало мне ошибку "Нет подходящей функции для вызова Node :: Node ()"