/ / c ++ deklariert eine Klasse in einer anderen Klassenheaderdatei - C ++ - Headerdateien

C ++ deklariert eine Klasse in einer anderen Klassen-Header-Datei - C ++, Header-Dateien

#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 № 1

Wir 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.