Wie übergebe ich Variabeln von einer Unit in eine andere (gleiches Projekt)

PRPro

Grünschnabel
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!
 
FJK hat gesagt.:
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
 
Wenn du ein und dieselbe Variable in mehreren Modulen nutzen willst, musst du sie als extern deklarieren.

Code:
//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 ;)
 
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" ?
 
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.
 
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.
 
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
 
Hi,
vielleicht ist das das was du willst?

Code:
#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
 
Zurück