Auf fremde Membervariablen zugreifen?



  • Ich hab folgendes Problem:

    Ich möchte auf eine nicht statische Membervariable zugreifen, und zwar von CTestView(MDI-Anwendung) auf CTestObj(eigene allgemeine Klasse), die Membervariable m_str1 wird in CTestObj auf einen bestimmten Wert gesetzt, der aus einer ComboBox ausgewählt werden kann.
    Jetzt möchte ich aber diesen Wert in CTestView weiterbenutzen und weiterverarbeiten. Aber leider weiss ich nicht wie ich dort zugreifen könnnte? Wenn ich das so in CTestView mache ist der Wert leer:

    CString temp;
    CTestView tmp;
    temp=tmp->m_str1;
    

    Wie mach ich das nun?
    Vielen Dank für Eure HILFE!!!!



  • Keiner einen Ratschlag für mich? 😞 😞 😞



  • CString temp;
    CTestView tmp;
    temp=tmp->m_str1;
    

    Du meinst wohl

    CTestObj tmp;
    

    oder?

    Aber egal, so kann das nicht funktionieren. Du erstellst die ja eine neue Instanz von CTestObj. Da kann ich m_str1 ja nichts drinstehen. Du musst auf die Instanz zugreifen wo deine ComboBox gesetz wurde.



  • ja stimmt da hast du recht hab mich mit der klasse vertan.
    nur wie soll ich von einer anderen klasse auf die instanz der combobox zugreifen?? also von view auf test ?? das ist ja mein problem 😮

    bitte um hilfe!



  • Du hast C++ bzw. OOP noch nicht richtig verstanden.

    Du benötigst die Instanz des Objektes CTestView. ich schätze mal irgendwo wird bei dir ein m_cTestView oder so rumschwirren.

    Für dessen Members (z.B. die ComboBox) benötigst du eine get und set Methode. Bsp.:

    class CTestView
    {
      private:
         CComboBox m_comboBox;
    };
    

    Erstelle dir dazu eine get-Methode:

    class CTestView
    {
      private:
         CComboBox m_comboBox;
    
      public:
         CComboBox getComboBox();
    };
    
    // In der cpp-Datei.
    CComboBox CTestView::getComboBox()
    {
        return m_comboBox;
    }
    

    Jetzt kannst du von überalle über die entsprechende Instanz an das Member rankommen.


Anmelden zum Antworten