CStringArray als Rückgabewert ein Problem?



  • Hallo

    ich hab das VS2005 und hab mir gerade eine Methode geschrieben, die ein Objekt von Typ CStringArray zurück gibt.

    Das macht er aber nicht und meckert mir an, dass ich auf ein protected Element von der Klasse nicht zugreifen kann.

    Im VS2003 hat das auch ohne Probleme geklappt.

    Ich hab das Attribut dann einfach mal als public gemacht, aber das hat auch net geholfen 😞

    Hat jemand ne Idee?



  • #schuettel#



  • Im VS2003 hat das auch ohne Probleme geklappt

    Wirklich?

    Gib das Array mal als Referenz zurück:

    private:
    CStringArray m_mein_array;
    public:
    CStringArray& GetArray() {return m_mein_array;}
    

  • Mod

    CStringArray hat keinen Copy-Constructor und keinen operator=. Wie soll man also solch en Objekt als Ergebnis einer Funktion zurückgeben?
    Das ging noch nie in irgendeiner MFC Version!

    Eine Referenz zurückgeben ist auch nicht gut. Besser eine Funktion schreiben, die den Array als Referenz aufnimmt.

    void GetArray(CStringArray& array) 
    {
    ...
    }
    

Anmelden zum Antworten