ERLEDIGT
NEIN
NEIN
ANTWORTEN
4
4
ZUGRIFFE
406
406
EMPFEHLEN
-
25.11.11 20:29 #1
Hallo
Nun ich habe mal wieder en Problemchen
Diesmal ist es so das ich eine Funktion habe die nichts mit einer Klasse zu tun hat, also:
(Als bsp. )Code cpp:1 2 3
void abc() { }
Nun habe ich in meiner Klasse Cabc eine Varible XY( Typ float ). Ich möchte nun die Variable XY in Funktion abc abfragen können. Klar erster Gedanke Pointer als Parameter. Aber ne ist nicht. Ich darf der Funktion keinen Parameter geben da sieh von einer anderen Funktion aufgerufen wird auf die ich kein Einfluss habe. Wenn ich in der Funktion einfach Cabc blabla; mache und dann mit blabla aie Variable abfragen möchte, ist die natürlich leer -.-
Nun wie kriege ich das hin?
DankeFehlermeldung bitte!
Google - Dein Freund und Helfer
-
25.11.11 22:03 #2
Ohne Zugriff auf das Objekt geht das nicht.
Da fällt mir gerade nur die Möglichkeit ein, in deiner Klasse die Instanzen zu speichern, um sie dann per statische Methode abfragen zu können. Alle anderen Möglichkeiten fallen ja weg, da du keinen Einfluss auf die andere Funktion hast.mfg ComFreek
Falls ich dir geholfen habe, würde ich mich über ein DANKE freuen!
Kenn mich am besten aus in C++, WEB-Sprachen (PHP, HTML, JavaScript) und vllt. mehr
[PHP] Überprüfen, ob Website erreichbar • Sicherheit in PHP-Codes schaffen • Google Chrome-Extension für tutorials.de • json_compress()
-
25.11.11 22:27 #3
Danke, aber...
... dass doofe ist nur das ich sehr viel Instanzen von meiner Klasse erstellen werde. Und immer nur die Instantz abzuspeichern... uuf. Ich dachte acuh schon an globale Variablen aber das führt zu unsauberem Code-.- Und vorallem wenn man sich doof anstellt zu Linker fehlern O.o
Also andere Methoden gibts wirklich garnicht?
Fehlermeldung bitte!
Google - Dein Freund und Helfer
-
26.11.11 00:38 #4
- Registriert seit
- Mar 2011
- Beiträge
- 15
Wie wärs damit:
Code cpp:1 2 3 4 5 6 7 8 9 10 11 12
// Cabc.h class Cabc { private: float XY; static float shareCurXY; public: float getXY(); static void setShareCurXY(const float& sC); static float getShareCurXY(); };
Code cpp:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
// Cabc.cpp #include "Cabc.h" float Cabc::shareCurXY = 9000; float Cabc::getXY() { return XY; } void Cabc::setShareCurXY(const float& sC) { Cabc::shareCurXY = sC; } float Cabc::getShareCurXY() { return Cabc::shareCurXY; }
Code cpp:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
// main.cpp #include "Cabc.h" void abc(); int main() { Cabc cabcInst; . . Cabc::setShareCurXY(cabcInst.getXY()); tolleFunktion(abc); . . return 0; } void abc() { float xy = Cabc::getShareCurXY(); process(xy); }
Geändert von Eburneolus (26.11.11 um 00:43 Uhr)
-
26.11.11 11:18 #5
- Registriert seit
- Jun 2005
- Beiträge
- 8.168
Hi.Bei dem was du vorhast fürchtest du unsauberen Code?

Falls du das Problem nicht übermäßig vereinfacht hast und die Funktion tatsächlich keine Argumente bekommt, dann mußt du eine Möglichkeit schaffen irgendwie global auf den Wert einer bestimmten Instanz (die möchtest doch auf ein Instanzattribut zugreifen oder?) zuzugreifen. Ob du diese globale Variable in einem Namensraum steckst oder in eine Klasse oder einfach im globalen Namensraum ist dann fast nur Geschmackssache.
GrußIf at first you don't succeed, try again. Then quit. No use being a damn fool about it.
Ähnliche Themen
-
Klasse mit 2 Funktionen: Variable aus 1.Funktion in 2. Funktion verfügbar machen
Von querytail im Forum PHPAntworten: 7Letzter Beitrag: 20.09.11, 17:47 -
Warum Member von Klassen Private?
Von Rene42 im Forum C/C++Antworten: 3Letzter Beitrag: 01.06.09, 12:17 -
Member-Variable einer MFC-Klasse in einfache Klasse einfügen
Von cappa555 im Forum VisualStudio & MFCAntworten: 1Letzter Beitrag: 12.12.08, 17:33 -
Readonly-Property auf private-Variable einer statischen Klasse
Von Thomas D im Forum PHPAntworten: 6Letzter Beitrag: 15.05.08, 19:12 -
Konstruktor funktion zum setzen einer private static bool variable funktioniert nicht
Von DirkS1 im Forum C/C++Antworten: 2Letzter Beitrag: 06.01.08, 22:11





Zitieren


Login






