Im auf Englisch nicht gut .. sorryKann ich die C++ - Codestruktur sehen?
zum Beispiel
struct structure1
{
structure2 st;
}
struct structure2
{
structure1 st;
}
Es
Wie kann ich diesen Code unvollständigen Typ Fehler ??
Es funktioniert gut in Java ist aber in C++ Ich denke, weil Top-down-Prozess ..
ich es Arbeit gute Lösung frage, hat
Dies ist mein richtiger Code
Es ist Teil der Graph ist Algorithmus
struct Edge
{
Node destination;
int capacity;
int cost;
Edge dual;
Edge(Node n, int c, int s)
{
capacity = c;
cost = s;
destination = n;
dual.cost = -9999;
}
};
struct Node
{
int cost;
vector<Edge> edges;
Edge from;
string name;
bool onq;
Node()
{
from.capacity = -9999;
}
void clear()
{
cost = 0;
edges.clear();
from.capacity = -9999;
}
};
Vielen Dank !!
Wie für Ihre Änderungen. Es ist so ziemlich das gleiche Prinzip, das ich in meiner Antwort gezeigt habe. Sie leiten 'Node' weiter und verwenden einen Zeiger oder eine Referenz dafür in' Edge'. –
Auch 'Edge Dual;' wird nicht funktionieren. Ich habe keine Ahnung von seinem Zweck, aber wenn Sie eine andere 'Edge'-Instanz referenzieren wollen, verwenden Sie wieder einen Zeiger oder eine Referenz. –
Der Grund dafür, dass es in Java funktioniert, ist, dass Sie in Java, wenn Sie eine Variable eines Klassentyps deklarieren, tatsächlich einen Verweis erstellen (der wie ein Zeiger in C++ ist), kein tatsächliches Objekt dieser Klasse . Das eigentliche Objekt wird auf dem Heap erstellt, wenn Sie zum Beispiel 'st = new structure1();' –