Я искал Синтаксическую ошибку C2061 некоторое время, и я понял, что это часто вызвано круговыми зависимостями файлов заголовков. Тем не менее, я считаю, что я должен был разрешить это в своих файлах, но у меня все еще есть проблема.C++ Custom Header File - Синтаксическая ошибка C2061: идентификатор
Arc.h
#pragma once
#include <string>
using namespace std;
class Node;
class Arc
{
public:
Arc(Node &p_destination, const string &p_mode);
~Arc();
private:
string m_mode;
Node* m_destination;
};
node.h
#pragma once
#include <string>
#include <vector>
using namespace std;
class Arc;
class Node
{
public:
Node(const string &p_name, const int &p_identifier, const float &p_latitude, const float &p_longitude);
~Node();
void set_arcs(Arc* p_arc) { m_arcs.push_back(p_arc); } //Line that causes the error
private:
std::vector<Arc*> m_arcs;
//Other Private Variables removed
};
файлы заголовков оба были включены в соответствующие CPP файлы. Любая помощь по этому вопросу будет принята с благодарностью!
Редактировать: Полное сообщение об ошибке ниже
"Syntax Error: identifier 'Arc'"
Как у вас может быть '' Arc' ', член типа 'Node', а затем в' Node' есть член типа 'Arc'? – EdChum
([* Почему «использование пространства имен std» в C++ считается плохой практикой?] (Http://stackoverflow.com/questions/1452721/why-is-using-namespace-std-in-c-considered-bad- практика)) – Biffen
@LoadData Не можете ли вы поместить реализацию 'Node :: set_arcs' в файл' .cpp'? – Biffen