"Variablenübergabe"



  • Hi,

    ich habe unter "externe variablen problem" mein problem schon mal gepostet. aber irgendwie bin ich noch auf dem "holzweg".

    ich werde mein problem noch mal schildern:

    ich habe eine configmenuimpl.h-datei und die dazugehörige .cpp.
    diese datei stellt ein kleines menü da, wo ich bei sogenatte checkBoxen ein Haken reinmachen kann oder nicht. Wenn diese gesetzt sind soll jeweils eine Variable auf TRUE oder gegebenfalls auf FALSE gesetzt werden. das ganze soll in funktionen geschehen.

    eine andere datei tastaturimpl.h und dazugehörige .cpp-datei stellt ein programm da, dass die in oben gesetzten variablen abfragen soll, ob sie nun TRUE oder FALSE sind. das ganze soll auch in funktionen geschehen.

    wie und wo muss ich nun die variablen setzen bzw. was muss ich wo implementieren.

    danke

    bastian



  • Hallo,

    du deklarierst die Variablen in den beiden Headerdateien als 'extern'. In _einer_
    Implementationsdatei definierst du dann diese Variablen und belegst sie, wenn
    erwuenscht, mit einem Startwert vor.

    Z. B.:

    //headerfile1
    #ifndef headerfile1H
    #define headerfile1H
    
    extern int foo; //irgendwo ist foo definiert, wo das ist spielt noch keine rolle
    
    #endif
    
    //headerfile2
    #ifndef headerfile2H
    #define headerfile2H
    
    extern int foo;
    
    #endif
    
    //impl.-datei
    int foo = 0;
    

    [edit]
    Ich nehme mal an, dass du in der Headerdatei 'tastaturimpl.h' nicht auf die
    Variablen zugreifst, dann brauchst du sie dort natuerlich auch nicht als
    extern zu deklarieren. Du musst die Headerdatei, in welcher sich die extern
    Deklarationen befinden, natuerlich auch immer includieren, wenn du auf diese
    Variablen zugreifen moechtest.
    [/edit]

    mfg
    v R



  • es klappt jetzt.
    in der cpp-datei in der ich die variablen definiere, stehen die nur mit datentyp var drin und in der dazugehörigen headerdatei als extern noch dazu.
    und in der anderen datei, wo ich die werte abfrage, includier ich nur noch das headerfile von "oben".

    danke bastian


Anmelden zum Antworten