Ich habe eine Klasse namens Edge und eine Klasse namens Vertex
in meiner Edge-Klasse gibt es einen Verweis auf einen Vertex namens Ziel. in Vertex sende ich in einem Rand und versuchen, das Ziel durch den Rand zu ändern, aber ich habe einen Compiler-Fehler der Klasse Edge hat kein Mitglied namens Ziel.
meine Edge.h ist
#include "Vertex.h"
class Edge
{
public:
Edge *data;
Edge *next;
Vertex *target;
Edge();
Edge(Edge *x);
Edge(Vertex *x);
void print();
};
Der Fehler wird durch diesen Code in Vertex.cpp verursacht
Vertex::Vertex(Edge *x)
{
name = x->target->name;
next = x->target->next;
mark = x->target->mark;
previous = NULL;
next = NULL;
}
Der genaue Fehler, wenn ich versuche, Vertex zu kompilieren, lautet
g++ -g -I. -c -o Vertex.o Vertex.cpp
In file included from Vertex.h:3,
from Vertex.cpp:3:
Edge.h:10: error: ISO C++ forbids declaration of ‘Vertex’ with no type
Edge.h:10: error: expected ‘;’ before ‘*’ token
Edge.h:14: error: expected ‘)’ before ‘*’ token
Vertex.cpp: In constructor ‘Vertex::Vertex(Edge*)’:
Vertex.cpp:26: error: ‘class Edge’ has no member named ‘target’
Vertex.cpp:27: error: ‘class Edge’ has no member named ‘target’
Vertex.cpp:28: error: ‘class Edge’ has no member named ‘target’