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.


Anmelden zum Antworten