Variableninhalt bei Übergabe an anderer Methode weg
-
Hallo,
ich habe da folgendes Problem. Wenn ich aus einer Memberfunktion in eine andere Memberfunktion der gleichen Klasse wechsle, wird der Inhalt meiner Variablen der gleichen Klasse glöscht. Der Aufruf erfolgt von der Membermethode a z.B.
void CLV::Put()
{
m_nWert = 1;
CLTest::Get();
}void CLV::Get()
{
m_nWert = m_nWert+3; // m_nWerts Inhalt ist nicht mehr vorhanden
}Die Variable habe ich als private deklariert.
Wie kommt das bzw. wie kann ich das beheben ?
im voraus vielen Dank
-
Wann rufst du denn die Methoden jeweils auf. In zwei verschiedenen Fkt. oder kurz nach einander? Ein bischen Code von den Stellen, wo du sie aufrufst wäre vieleicht nützlich.
-
Hallo !
Warum CLTest::Get(); und nicht einfach nur Get() ?
Tschüss
-
wo liegt dabei der Unterschied ?
-
CLTest ist eine ganz andere Klasse als CLV!!
-
Sorry Die
Funktion wird natürlich auch mit CLVTestDlg::... aufgerufen
ist hier ein Schreibfehler von mir
-
Hallo die Funktion rufe ich direk aus der Funktion CLVTest::Put() auf.
void CLVTest::Put()
{
m_nWert = 1;
CLVTest::Get(); // dierekter Aufruf
}void CLVTest::Get()
{
m_nWert = m_nWert+3; // m_nWerts Inhalt ist nicht mehr vorhanden
}MfG
-
Hallo!
Warum rufst du die Funktion denn mit "CLVTest::Get();" auf?
Innerhalb derselben Klasse kannst du auch einfach nur "Get();" aufrufen.
Probiers mal aus, ansonsten finde ich keinen Fehler.
-
mit CTest::Get()
rufst du nicht die Methode der Instanz sondern der Klasse imho auf.Devil
-
Wahrscheinlich hast Du sowas codiert:
class CLVTest { public: void Put() { m_nWert = 1; } void Get() { m_nWert = m_nWert + 3; // m_nWert-Inhalt ist nicht mehr vorhanden } private: int m_nWert; } void CMeinDlg::Put() { CLVTest test; test.Put(); } void CMeinDlg::Get() { CLVTest test; test.Get(); }