Neudefinition des Strukturfehlers, ich habe ihn nur einmal definiert

8

Ich verstehe wirklich nicht, wie ich diesen Neudefinitionsfehler beheben kann.

KOMPILIEREN + FEHLER

%Vor%

main.cpp

%Vor%

list.h

%Vor%

line.h

%Vor%

list.cpp

%Vor%

line.cpp

%Vor%     
eveo 23.02.2013, 15:57
quelle

3 Antworten

10

In list.cpp fügen Sie sowohl "line.h" als auch "list.h" ein. Aber "list.h" enthält bereits "line.h", so dass "list.h" tatsächlich zweimal in Ihrem Code enthalten ist. (Der Präprozessor ist nicht schlau genug, um etwas nicht aufzunehmen, das er bereits hat).

Es gibt zwei Lösungen:

  • Fügen Sie "list.h" nicht direkt in Ihre list.cpp-Datei ein, aber es ist eine Übung, die nicht skaliert: Sie müssen sich daran erinnern, was jede Ihrer Header-Dateien beinhaltet und das wird sehr schnell zu viel.
  • Verwenden Sie Wächter, wie von @juanchopanza
  • erklärt
Cyrille Ka 23.02.2013, 16:02
quelle
20

Sie müssen Wächter in Ihre Kopfzeilen einfügen.

%Vor%     
juanchopanza 23.02.2013 15:59
quelle
1

Sie fügen "line.h" zweimal ein, und Sie haben keine Wächter in Ihren Header-Dateien.

Wenn Sie etwas hinzufügen wie:

%Vor%

zu Ihren Header-Dateien, es wird alles gut gehen.

    
Mats Petersson 23.02.2013 16:01
quelle

Tags und Links