#ifndef PC
#define PC
#include <iostream>
#include <string>
#include "../include/worm.h"
#include "../include/dns.h"
class DNS; // Forward decleration
class PC
{
....(there is all the declration here)
};
#endif
Warum gibt es die "Klasse DNS"? Was ist der Zweck, das zu schreiben?
Antworten:
4 für die Antwort № 1Wir würden mehr Code benötigen, insbesondere DNS 'sHeader-Datei, aber ich gehe davon aus, dass dns.h auch pc.h enthält. Wenn Sie zwei Header-Dateien haben, die sich gegenseitig enthalten, müssen sie jeweils die andere Klasse vorwärts deklarieren.
Wenn dns.h pc.h jedoch nicht enthält, benötigen Sie keine Vorwärtsdeklaration.
Mein Verständnis davon beinhaltet RundschreibenAbhängigkeiten. Stellen Sie sich vor, ich gehe durch dns.h, und ich sehe pc.h. Ich muss wissen, worauf Sie angewiesen sind, und jetzt gehe ich durch pc.h. Ich sehe jetzt dns.h, aber ich war nur da, also ich Fahren Sie mit pc.h fort. Wenn Sie DNS innerhalb des Klassen-PCs verwenden, woher soll ich wissen, was DNS ist? Ich hörte auf, durch dns.h zu gehen, bevor ich diese Klassendeklaration traf.
Die Lösung besteht darin, die Klasse vorauszusehenpc.h. Dies gibt mir gerade genug Informationen, um zu wissen, dass DNS eine Klasse ist und nicht ausflippt, wenn ich Argumente, Variablen usw. vom Typ DNS sehe. Ich habe jetzt Vertrauen, dass DNS später definiert wird.