Wert eines Objektes ändern
-
Hallo,
Ich habe eine Klasse CDib in der ein Objekt store definiert wird.
$
class CDib
{public:
CAboutDlg store;
......
$
In der Klasse CAboutDlg will ich nun in einer Funktion den Wert einer der Parameter von store(test) ändern
CDib::store.test=4;Dabei erhalte ich folgenden Fehler:
error C2228: left of '.test' must have class/struct/union type
Das Objekt store der Klasse CAboutDlg sieht dabei folgendermassen aus:
$
class CAboutDlg : public CDialog
{public:
int test;
.......
$
-
Steffen83 schrieb:
In der Klasse CAboutDlg will ich nun in einer Funktion den Wert einer der Parameter von store(test) ändern
CDib::store.test=4;Ist die Instanz von CAboutDlg, über die du die Funktion aufrufst, dieselbe wie die, deren "Parameter" (eigentlich ist es eine Membervariable) du ändern willst?
Falls ja, sollte das hier ausreichen:
test = 4;Falls nein:
Da store kein statischer Member von CDib ist, brauchst du eine Instanz von CDib (oder einen Zeiger oder eine Referenz darauf), um auf den zu dieser Instanz gehörenden store-Member zuzugreifen.Falls du nicht genau weißt, was eine Instanz ist, und was sie von einer Klasse unterscheidet, solldest du dich nochmal mit den Grundlagen beschäftigen.
-
Vielen Dank
Ich schaue mir die Sache mit den Instanzen nochmal an.