Mehrdimensionel Array als Member in Klasse



  • Hallo,
    bin neu bei C++ und hab mich etwas eingelesen in der Sprache =).
    Aber nun hackt es etwas, vielleicht könnt ihr mir da weiterhelfen.

    Folgendes Szenario:

    class Klasse
    {
       createArray(int x, int y);
    private:
       RESERVIERUNG FÜR NOCH UNBEKANTEN MEHR DIMENSIONALER INT ARRAY;
    }
    
    Klasse::createArray(int x, int y)
    {
       INITIALISIERE MEHRDIMENSIONALEN ARRAY MIT [x][y];
    }
    

    Kann mir wer erläutern wie man so etwas implementiert? 🙂

    Gruß



  • class Klasse
    {
    public:
       Klasse() : meinArray(0){ }
       ~Klasse(){ delete[] meinArray; }
    
       createArray(int x, int y);
       deleteArray();
    private:
       int *meinArray;
    }
    
    Klasse::createArray(int x, int y)
    {
       meinArray = new int[x][y];
    }
    Klasse::deleteArray()
    {
       delete[] meinArray;
       meinArray = 0;
    }
    


  • Fellhuhn schrieb:

    class Klasse
    {
    public:
       Klasse() : meinArray(0){ }
       ~Klasse(){ delete[] meinArray; }
    
       createArray(int x, int y);
       deleteArray();
    private:
       int *meinArray;
    }
    
    Klasse::createArray(int x, int y)
    {
       meinArray = new int[x][y];
    }
    Klasse::deleteArray()
    {
       delete[] meinArray;
       meinArray = 0;
    }
    

    Ich glaube nicht, Tim.

    So z.B.:

    //...
    private:
       int **meinArray;
    }
    
    Klasse::createArray(int x, int y)
    {
       meinArray = new int*[x];
       //auf Fehler pruefen!
       for(size_t n = 0; n < x; ++n)
       {
          meinArray[n] = new int[y];
          //auf Fehler pruefen!
       }
    }
    

    oder mit std::vector<std::vector<int> > oder mit boost::multi_array



  • Arghs, sollte auch [x*y] heißen und nicht [x][y]. 😉



  • Ich glaube nicht, Tim.

    Das heisst:
    „Das glaube ich nicht, Tim!“


Anmelden zum Antworten