Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Membervariabel eines Objekts mit Call by Reference Ändern

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
10.05.2007, 17:46 Uhr
PaRu



ich möchte die membervariabel eines objekts mit einem Call by Reference ändern. ich rufe den konstruktor auf und mache ein paar auswertungen. dann rufe ich eine memberfunktion des gleichen objekts aus dem konstruktor heraus auf und übergebe ihr per Call by Reference die membervariabel.


C++:
CObject1::Object1::Object1( ) {
...
    convertLine( buffer, Variable );
...
}

CObject1::Object1::convertLine( std::string buffer, double& tmp ) {
    tmp = 1;
}


in dem beispiel ist ist "Variable" der name der membervariabel von der klasse Object1.

mein problem: nachdem ich die funktion verlassen habe, steht leider nicht mehr in der entsprechenden membervariabeln der wert.
--
Gruß Patrick

Dieser Post wurde am 10.05.2007 um 17:46 Uhr von PaRu editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
10.05.2007, 17:52 Uhr
Blubber2063



Das ist jetzt ein Witz oder ? Du hast doch in der selben Klasse Zugriff auf die Membervariablen, dafür brauchst du doch kein CallByReference.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
10.05.2007, 18:03 Uhr
stephanw
localhorst


Ich sehe da keinen Fehler, bei mir geht das:

Du hast bestimmt einen anderen Fehler...

Und wenn Du direkten Zugriff hast, ändere sie doch direkt !
--
Reden ist Schweigen und Silber ist Gold.

Dieser Post wurde am 10.05.2007 um 18:03 Uhr von stephanw editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
10.05.2007, 19:27 Uhr
Pler
Einer von Vielen
(Operator)


Dann übergibst du entweder eine andere Variable.
Oder legst noch eine lokale an, die du dann benutzt,
oder rufst einen anderen Konstruktor auf.

Und warum du überhaupt die Membervariable übergibst verstehe ich auch nicht.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
10.05.2007, 20:08 Uhr
PaRu



@Blubber2063
ne, ist leider kein witz. ich muß aus einer datei ca.20 werte auslesen und verarbeiten. die verarbeitung ist bei allen gleich ( convertLine() ). im konstruktor mach ich die entsprechende zuordnung zur richtigen datei mittels switch-case abfrage. daher call by reference. ich kann natürlich die convertLine()-funktion in jeder case abfrage direkt programmieren, aber das ist häßlich ...
--
Gruß Patrick
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
10.05.2007, 20:10 Uhr
Pler
Einer von Vielen
(Operator)


Die Frage war doch, warum du deswegen die Variable übergeben musst. Ist doch eh ne Membervariable. Da greifst du doch einfach drauf zu.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
10.05.2007, 20:55 Uhr
PaRu



aber ich weiß doch in convertLine() nicht auf welche der 20 membervariabeln zugreifen soll. das entscheide ich per switch case im konstriktor.
--
Gruß Patrick
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
10.05.2007, 20:59 Uhr
Pler
Einer von Vielen
(Operator)


Ach so. Jetzt hab ich es verstanden.
Dann wirst du wohl einfach die falsche Variable übergeben, oder später die falsche prüfen.

Kann nur sowas sein.
Müsstest wohl mal etwas mehr Quellcode zeigen.

Hast du das ganze schon mal im Debugger ein wenig verfolgt?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
10.05.2007, 21:23 Uhr
PaRu



war ein fehler in der switch anweisung. es ist immer in den gleichen case gelaufen

das ist noch mein problem. ich benutze mingw und da gibt es leider nur gdb und den find ich mißt. trotzdem danke.
--
Gruß Patrick
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
009
11.05.2007, 10:20 Uhr
Pler
Einer von Vielen
(Operator)


kannst du da nicht den ddd benutzen?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: