#ifndef CLASS_FOO
-
Hallo,
bin gerade mal wieder beim VC über etwas zumindest für mich unverständliches gestolpert. Ich habe ein paar Klassen, die ich seit geraumer Zeit unter Windows nutze jetzt auf Linux portiert. Diese habe ich jetzt von zu Hause wieder mitgebracht und auf der Arbeit in die bestehenden Projekte eingebastelt. Siehe da, die Klasse hat er super Kompiliert, aber im Gesamtproject 700 - zig Fehler - "Neudefinition unterschiedlicher Basistypen", sowohl bei einigen typdefs als auch klassendefinitionen - der gcc hat das super hingekriegt. Ich habs verfolgt und bin auf folgendes gestoßen:
#ifndef CIMGPROC_H #define CIMGPROC_H typedef....{} class Foo{}; ...some more classes and typedefs #endif
Mir ist früher schon aufgefallen, das beim VC mit dem Klassenassi erstellte Klassen immer diese komischen #ifndef Konstrukte haben. Ich hab die Teilweise immer recht fahrlässig weggeschmissen. Scheinbar haben die aber doch ihren praktischen Sinn.
Helft mal einem Unwissenden. Im sonstigen source werden giebt es keinerlei Bezu dafür.
-
die "#ifdef-Konstrukte" verhindern, dass das file ein zweites mal eingebunden wird ("include-wächter").
geloescht
-
Stimmt. Jetzt wo du es sagst ist es logisch - da war ich wohl ein bisschen schwer von Begriff.