Array von Objektreferenzen in eindim. Array



  • Hallo,

    ich habe eine Klasse von Objektreferenzen und möchte diese in einer höheren Klasse verwenden. Die Objekte selbst sollen allerdings im Heap erstellt werden.

    Daher war mein erster Ansatz (vereinfachtes Beispiel):

    class Object {
    public:
      Object(const int &i, const int &j);
      ~Object();
      void methods();
    private:
      int i;
      int j;
    };
    
    class Klasse {
    public:
      Klasse(const int &i);
      ~Klasse();
    private:
    Object** objects;
    };
    

    Der Zugriff, so dachte ich, erfolgt dann mit:

    objects = new Object*[10];
    for (int i = 0; i < 10; i++) {
      objects[i] = new Object(0,0);
    }
    ...
    

    Allerdings merkte ich, dass ich ein 2-dim. Array erstellt habe, möchte jedoch auf die Objektmethoden gerne mit objects[i]->method() zugreifen. Wie kann ich das bewerkstelligen?

    Vielen Dank schon mal für eure Hilfe.

    Gruß,

    Tobias



  • is schon richtig so



  • std::vector<T> verwenden.
    http://www.cplusplus.com/reference/stl/vector/

    In C++ verzichtet man üblicherweise auf Arrays und verwendet die vom Standard bereitgestellten Funktionen. Dann musst du dich um den Speicher auch nicht mehr kümmern.


Anmelden zum Antworten