Я реализую класс Node в C ++ как присваивание.
Класс:
#pragma once
#include <iostream>
class Node {
size_t id;
std::pair<size_t, Node> dist;
public:
//Node();
//Node(const size_t);
Node(const size_t, const std::pair<size_t, Node>);
Node(const Node&);
//std::pair<const bool, const std::string> setId(size_t);
//std::pair<const bool, const std::string> setDist(std::pair<size_t, Node>);
//void operator=(const Node&);
};
Node::Node(const size_t nodeId, const std::pair<size_t, Node> distanceFromPreviousNode) : id(nodeId), dist(distanceFromPreviousNode) { }
Node::Node(const Node& node) {
try {
id = node.id;
dist = node.dist;
throw std::string("Could not set the id and distance to given value");
}
catch (std::string exception) {
std::cerr << exception;
exit(1);
}
}
Уверяю, что все функции были реализованы в файле node.cpp
.
Тем не менее, я получаю следующую ошибку std::pair<size_t, Node>::second uses undefined class 'Node'
Я совершенно не понимаю, что ошибка хочет от меня, и почему intellisense
не обнаруживает ее. О, также генерируется ctor
(по крайней мере, это номер строки, на которую указывает сообщение об ошибке)