Ich habe seit einiger Zeit in Syntaxfehler C2061 untersucht, und ich habe verstanden, dass es oft durch zirkuläre Abhängigkeiten von Header-Dateien verursacht wird. Ich glaube jedoch, dass ich das in meinen Dateien gelöst haben sollte, aber ich habe weiterhin das Problem.C++ Benutzerdefinierte Header-Datei - Syntax Fehler C2061: Bezeichner
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
};
Die Header-Dateien werden beide in den entsprechenden CPP-Dateien enthalten. Jede Hilfe in dieser Angelegenheit wird sehr geschätzt!
Edit: Vollständige Fehlermeldung unter
"Syntax Error: identifier 'Arc'"
Wie kann man 'Arc' ein Mitglied vom Typ' Node' haben und dann in 'Node' ein Mitglied vom Typ' Arc' haben? – EdChum
([* Warum wird "Verwenden von Namespace std" in C++ als schlechte Methode betrachtet? *] (Http://stackoverflow.com/questions/1452721/why-isusing-namespace-std-in-c-considered-bad- Übung)) – Biffen
@LoadData Können Sie nicht die Implementierung von 'Node :: set_arcs' in die' .cpp' Datei einfügen? – Biffen