tutorials.de Buch-Aktion 05/2012
Seite 1 von 2 12 LetzteLetzte
ERLEDIGT
NEIN
ANTWORTEN
20
ZUGRIFFE
915
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    PRPro PRPro ist offline Rookie
    Registriert seit
    Nov 2004
    Beiträge
    7
    Ich habe in Unit2 (wird von Unit1 aufgerufen) eine Variable definiert und belegt.
    Jetzt will ich diese aber in Unit1 weiterbenutzen.

    Ich hab mal Proforma In den Headder beider Units "#Include <Unit1.h> (bzw. Unit2) Eingetragen.


    aber nicht. er sagt mir das die Variable nicht definiert ist.

    Danke!
     

  2. #2
    Beichtpfarrer Beichtpfarrer ist offline Mitglied Brokat
    Registriert seit
    Jan 2004
    Ort
    Wannweil
    Beiträge
    302
    was is unit1, was unit2 ?
    Sind das 2 .cpp-Dateien?
     
    Noch weiter helfen jetzt nur noch google, msdn, Tutorials, Forumssuche, Eingebungen, Glück und ein wenig Hirnanstrengung.

  3. #3
    PRPro PRPro ist offline Rookie
    Registriert seit
    Nov 2004
    Beiträge
    7
    Ja Beide im Project "Project1".
     

  4. #4
    PRPro PRPro ist offline Rookie
    Registriert seit
    Nov 2004
    Beiträge
    7
    Zitat Zitat von FJK
    hallo
    ich weis nicht genau ob das fkt

    Unit1->Variable
    und du musst die unit1 in unit 2 einfügen

    probier mal aus und sag mal bescheit

    guten leitwert flo
    Wie ist das gemeint

    Per include habe ich das ja schon gemacht!
    Und doppelt deklarieren geht warscheinlich auch nicht oder
     

  5. #5
    Beichtpfarrer Beichtpfarrer ist offline Mitglied Brokat
    Registriert seit
    Jan 2004
    Ort
    Wannweil
    Beiträge
    302
    Wenn du ein und dieselbe Variable in mehreren Modulen nutzen willst, musst du sie als extern deklarieren.

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    
    //deklaration.h
     
    extern int f;
     
    //definition.cpp
     
    int f=3;
    #include"deklaration.h"
     
    //benutzer.cpp
     
    #include"deklaration.h"
     
    void func(){
    int b = f; }

    Ich bin mir nicht ganz sicher, wie es genau aussehen muss, aber in etwa so.
    Auf jeden Fall mit extern
     
    Noch weiter helfen jetzt nur noch google, msdn, Tutorials, Forumssuche, Eingebungen, Glück und ein wenig Hirnanstrengung.

  6. #6
    PRPro PRPro ist offline Rookie
    Registriert seit
    Nov 2004
    Beiträge
    7
    Wo genau soll ich das den Hinschreiben?

    Wenn ich das in den Privat/Public Teil der Headder (Unit2.h; die wo die Variable zum ersten mal verwendet wird) schreibe dann sagt der mir "Externe Speicherklasse hier nicht erlaubt" ?
     

  7. #7
    Beichtpfarrer Beichtpfarrer ist offline Mitglied Brokat
    Registriert seit
    Jan 2004
    Ort
    Wannweil
    Beiträge
    302
    Was geht jetzt?
    Private/Public-Teil?

    Gerade waren es noch .cpp-Dateien.

    Geb mal bitte eine genaue Erklärung, was genau diese Units sind, wie die Struktur der Dateien in etwa aussieht und was du erreichen willst.
     
    Noch weiter helfen jetzt nur noch google, msdn, Tutorials, Forumssuche, Eingebungen, Glück und ein wenig Hirnanstrengung.

  8. #8
    PRPro PRPro ist offline Rookie
    Registriert seit
    Nov 2004
    Beiträge
    7
    Ja ne sorry missverständnis.

    In der Unit2.h hab ich es deklariert und in der Unit2.cpp verwende ich die Variable.
    Und jetzt will ich die an Unit1.cpp (der Header) übergeben!

    Ja das ist alles.

    Ich öffne von Form1 aus ne neue Form2 in der ich einstellungen für Form1 machen will.
     

  9. #9
    Registriert seit
    Apr 2002
    Ort
    Delmenhorst (Niedersachsen)
    Beiträge
    3.567
    moin


    Du willst also von Form1 aus Werte setzen, die From 2 benötigt/verwendet?!
    Dann includierst du in Unit1.cpp auch die unit2.h


    Ich versteh leider nciht ganz was du willst, du schmeisst mit Begriffen um dich, aus demnen man erstens keinen zusammenhang erkennen kann und die zweitens auch noch von Beitrag zu Beitrag wechseln.


    mfg
    umbrasaxum
     

  10. #10
    Registriert seit
    Oct 2003
    Beiträge
    1.706
    Hi,
    vielleicht ist das das was du willst?

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    
    #include <iostream>
     
    using namespace std;
     
    class Unit1{        
     
            int *memberFromUnit2;
            
            public:
                    Unit1(int* ptr):memberFromUnit2(ptr){
                    }
            
                    void setMemberFromUnit2(){
                        
                            if(memberFromUnit2)  
                                    *memberFromUnit2 = 3;
                    }
    };
     
    class Unit2{
     
            int member;
            Unit1* u1;
     
            public:
            
                    Unit2(){             
                    
                            u1 = new Unit1(&member);
                            u1->setMemberFromUnit2();
                    }
     
                    ~Unit2(){ delete u1; }
            
                    inline int getMember(){ return member; }
     
            
    };
     
    int main(){
     
            Unit2 *u2 = new Unit2();
            cout << u2->getMember() << endl;
            delete u2;
            return 1;
    }

    Gruß

    RedWing
     
    "I'm not deaf, I'm ignoring you"
    ----

  11. #11
    Registriert seit
    Apr 2002
    Ort
    Delmenhorst (Niedersachsen)
    Beiträge
    3.567
    moin


    Oder "einfacher":

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    
    #include <iostream>
     
     
    int var=0;
     
     
    void Unit1()
    {
        //var um eins erhöhen
        var++;
    }
     
    void Unit2()
    {
        //var noch mal erhöhen und ausgeben
        std::cout<< ++var;
    }
     
    int main()
    {
        for( int l=0; l<10; l++)
        {
            Unit1();
            Unit2();
            std::cout<<" ";
        }
     
        std::cin.get();
     
        return 0;
    }


    @RedWing
    Gibt es einen Grund das du ein return 1; am Ende deines Programms machst?


    mfg
    umbrasaxum
    Geändert von Tobias K. (27.11.04 um 16:05 Uhr)
     

  12. #12
    Registriert seit
    Oct 2003
    Beiträge
    1.706
    Ja wegen des Rückgabewertes an das BS...
    Bin es so von Testprogrammen gewöhnt, das das testsuitetoll das ich zum Testen
    verwende einen erfolgreichen Test mit einer 1 auswertet...

    Gruß

    RedWing
     
    "I'm not deaf, I'm ignoring you"
    ----

  13. #13
    Registriert seit
    Apr 2002
    Ort
    Delmenhorst (Niedersachsen)
    Beiträge
    3.567
    moin


    Aha.
    Warum man es macht is klar, fand nur die 1 ungewöhnlich da ich nur 0 gewohnt binn.


    mfg
    umbrasaxum
     

  14. #14
    Registriert seit
    Apr 2004
    Beiträge
    189
    Also, wenn ich das richtig verstehe, will PRPro folgendes:

    Offensichtlich geht es ja um Borland C++Builder... Fügt man zu einem leeren Standardprojekt nun ein weiteres Formular (Form2) hinzu, so wird gleichzeitig auch noch eine dazugehörige Unit2.cpp erzeugt.
    Deklariert man jetzt z. B. in Unit2.cpp oder Unit2.h eine Variable int test = 5;, so kann man darauf ja offensichtlich nicht von Unit1.cpp aus zugreifen, da sie da ja als nicht deklariert erscheint... Das ist wohl das Problem.

    Naja, aber eine Antwort habe ich auch nicht.
     

  15. #15
    Registriert seit
    Apr 2002
    Ort
    Delmenhorst (Niedersachsen)
    Beiträge
    3.567
    moin


    Mag sein.
    Aber auch für den Umstand das es mit dem Borland..... gemacht wird, passen die obigen Antworten!

    Er müsste sich nur mal wieder melden.


    mfg
    umbrasaxum
     

Ähnliche Themen

  1. Antworten: 8
    Letzter Beitrag: 13.04.10, 09:42
  2. Inhalt einer txt in eine andere kopieren
    Von marfirk im Forum PHP
    Antworten: 2
    Letzter Beitrag: 19.11.07, 21:25
  3. Antworten: 8
    Letzter Beitrag: 24.10.05, 11:01
  4. Eine Variable von einer Funktion an eine andere übergeben
    Von pride im Forum Javascript & Ajax
    Antworten: 2
    Letzter Beitrag: 26.08.05, 22:59
  5. Verweis von einer Tabellenzeile in eine andere
    Von Kaeschdin im Forum HTML & XHTML
    Antworten: 3
    Letzter Beitrag: 11.06.03, 11:21