Anzeige:
Ergebnis 1 bis 3 von 3

Thema: kleines problem mit include ... rekursion führt zu fehler

  1. #1
    Registrierter Benutzer
    Registriert seit
    27.07.2000
    Beiträge
    123

    kleines problem mit include ... rekursion führt zu fehler

    Hallo,

    durch die Präprozessoranweisung wird verhindert, dass die Header - Datei "file1.h" mehrfach eingebunden wird.


    datei 1
    Code:
    #ifndef _MyIncludeTest_file1_h_
    #define _MyIncludeTest_file1_h_
    
    #include "file2.h"
    class Test1
    {
    	public:
    		typedef Test1 CLASSNAME;
    		Test1(){
    			RLOG(""<< __func__);
    		}
    	private:
    		Test2 _mytest;
    };
    
    #endif
    datei 2
    Code:
    #ifndef _MyIncludeTest_file2_h_
    #define _MyIncludeTest_file2_h_
    
    #include "file3.h"
    class Test2
    {
    	public:
    		typedef Test1 CLASSNAME;
    		Test2(){
    			RLOG(""<< __func__);
    		}
    	private:
    		Test3 * _mytest;
    };
    
    #endif
    datei 2
    Code:
    #ifndef _MyIncludeTest_file2_h_
    #define _MyIncludeTest_file2_h_
    
    #include "file1.h"
    class Test3
    {
    	public:
    		typedef Test1 CLASSNAME;
    		Test3(){
    			RLOG(""<< __func__);
    		}
    	private:
    		Test1 _mytest;
    };
    
    #endif
    Leider steigt er aber aus, da er am Ende Test1 nicht mehr kennt ...

    gibt es da eine Lösung ohne die Klassenstruktur erheblich zu ändern?

    extern class Test1 in "file3.h"

    grüße

    Reinhard

  2. #2
    Registrierter Benutzer
    Registriert seit
    27.07.2000
    Beiträge
    123
    hat sich erledigt,

    ich muss ja in "file2.h" die Klasse Test3 nur bekannt machen

    Code:
    class Test3;
    grüße

  3. #3
    Registrierter Benutzer
    Registriert seit
    18.03.2005
    Beiträge
    211
    Prinzipiell solltest Dir eh angewoehnen, nur das zu includieren was eh brauchst ...
    Also zu deutsch, immer forward wenn geht, include nur wenn musst.

    Ciao ...

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •