ERLEDIGT
NEIN
NEIN
ANTWORTEN
20
20
ZUGRIFFE
915
915
EMPFEHLEN
-
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!
-
26.11.04 15:04 #2
- 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.
-
Ja Beide im Project "Project1".
-
Wie ist das gemeint
Zitat von FJK
Per include habe ich das ja schon gemacht!
Und doppelt deklarieren geht warscheinlich auch nicht oder
-
26.11.04 15:14 #5
- 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.
-
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" ?
-
26.11.04 15:27 #7
- 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.
-
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.
-
26.11.04 18:36 #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
-
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"
----
-
27.11.04 16:00 #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
umbrasaxumGeändert von Tobias K. (27.11.04 um 16:05 Uhr)
-
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"
----
-
27.11.04 18:59 #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
-
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.
-
27.11.04 22:54 #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
-
Wie übergebe ich aus einem Subreport eine Variable in den Mainreport?
Von maggo im Forum JavaAntworten: 8Letzter Beitrag: 13.04.10, 09:42 -
Inhalt einer txt in eine andere kopieren
Von marfirk im Forum PHPAntworten: 2Letzter Beitrag: 19.11.07, 21:25 -
wie übergebe ich eine Variable an eine andere Seite
Von anfeanger83 im Forum PHPAntworten: 8Letzter Beitrag: 24.10.05, 11:01 -
Eine Variable von einer Funktion an eine andere übergeben
Von pride im Forum Javascript & AjaxAntworten: 2Letzter Beitrag: 26.08.05, 22:59 -
Verweis von einer Tabellenzeile in eine andere
Von Kaeschdin im Forum HTML & XHTMLAntworten: 3Letzter Beitrag: 11.06.03, 11:21





Zitieren
Login






