In einer Funktion auf ein array von einer anderen Funktion zugreifen



  • Hi,
    und zwar habe ich folgendes Problem.
    Ich habe ein Klasse geschrieben in der sich 2 Funktionen befinden, die eine Funktion liest ein daten ein und speichert diese in einem vector-array. Nun soll die andere Funktion auf das vector-array zugreifen, dabei sagt mir der compiler das mein vector-array nicht deklariert sei. Wie kann ich das bewerkstelligen das es funzt?

    Gruß
    Winfo



  • Entweder das Array global definieren oder es an die Funktion übergeben.



  • Ist der vector in der Funktion deklariert?
    Der muss dann nämlich wenn du mit beiden Funktionen darauf zugreifen willst in der class deklariert sein 🙂



  • @Finn
    also der vector ist in einer funktion deklariert die wiederum in der klasse ist und wenn ich den Vector ausserhalb der funktion deklariere dann ist meine funktion sinnlos, da diese nur dazu dient die daten in ein vector zu schreiben 🙂

    @nwp2
    das mit dem global definieren ist gut, kann ich den vector auch innerhalb der funktion als global definieren?



  • Zeig doch mal ein wenig Code.
    Wenn ich dich richtig verstehe, willst du sowas haben:

    class
    {
    public:
    
      void write () { /* schreibt in v_ */ }
      void read () { /* lest was aus v_ */ }
    private:
     std::vector<int> v_;
    };
    

    Und das hat jetzt nichts mit Global zu tun. v_ ist eine ganz normale Membervariable der Klasse.



  • ok,
    also es sieht im groben so aus :

    class x {
    
      public:
    
    bool read (string eingabedatei){/*liest daten aus datei u schreibt siein vector*/}
    void sort (){/*sortiert vector*/}
    bool write (string ausgabedatei){/*schreibt sortierten vector in datei*/}
    };
    

    Also wie gesagt er liest in der funktion read den vector ein und ich brauche den in den beiden anderen funktionen.



  • Ja. Dann mach es so, wie ich gezeigt habe. Das ist ja so ziemlich der Sinn von Klassen, dass du Daten hast, auf welchen die Funtionen operieren..


  • Mod

    WINFO2105 schrieb:

    ok,
    also es sieht im groben so aus :

    class x {
    
      public:
      
    bool read (string eingabedatei){/*liest daten aus datei u schreibt siein vector*/}
    void sort (){/*sortiert vector*/}
    bool write (string ausgabedatei){/*schreibt sortierten vector in datei*/}
    };
    

    Also wie gesagt er liest in der funktion read den vector ein und ich brauche den in den beiden anderen funktionen.

    Da fehlt halt noch der Vector 😉 . Guck dir dochmal an, wie drakon dir das gezeigt hat.



  • Ok, werd es gleich ma probieren umzusetzen.......
    erstma vielen dank.... 👍

    Gruß
    Winfo



  • Besten Dank, funzt alles. 😃

    Gruß
    Winfo


Anmelden zum Antworten