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_H
    

    klasse2.h:

    #ifndef KLASSE2_H
    #define KLASSE2_H
    
    #include<windows.h>
    
    class Klasse2
    {
    
    };   
    #endif//KLASSE1_H
    


  • cool danke genau was ich gebraucht hab :xmas1:


Anmelden zum Antworten