Klasse
-
Hallo Leute,
ich hab da ein kleines Problem: Ich hab in meinem Programm eine Klasse geschrieben, in eine externe .h Datei. Die bind ich dann eben mit #include "Klasse.h" ein. Wenn ich jetzt aber diese Klasse noch in eine andere externe Klasse einbinden will, also in main.cpp:#include "Klasse1.h" #include "Klasse2.h" und dann in Klasse1.h: #include "Klasse2.h"funzt das nicht. Und ich weiß nicht warum. Da kommt dann immer:
ErrorC2011: 'Klasse' : 'class' type redifinition.Gibts da irgendwas was ich gegen tun kann?
Würde mich über Hilfe sehr freuen
MfG Daniel
-
Hi,
mache doch einfach eine vorwärtsdeklaration der Klasse.
Einfach:
In Klasse1 das hier:
class Klasse2;
-
das funktioniert leider immer noch nich, vorrausgesetzt ich habs richtig gemacht. Es sieht jetzt so aus:
main.cpp:
#include <iostream> #include "klasse1.h" #include "klasse2.h" int main() { std::cout << "Hello world!" << std::endl; return 0; }klasse1.h:
#include<windows.h> #include "klasse2.h" class Klasse2; class Klasse1 { };und klasse2.h:
#include<windows.h> class Klasse2 { };mach ich da was falsch?
-
wenn du deine klasse mehrfach includen willst, must du verhindern das sie noch mal definiert wird.
setz mal in deine header der klassen
klasse1.h:
#ifndef KLASSE1_H #define KLASSE1_H #include<windows.h> #include "klasse2.h" class Klasse2; class Klasse1 { }; #endif//KLASSE1_Hklasse2.h:
#ifndef KLASSE2_H #define KLASSE2_H #include<windows.h> class Klasse2 { }; #endif//KLASSE1_H
-
cool danke genau was ich gebraucht hab :xmas1: