Objekt Array erstellen, aber wie???



  • Alos wiee erstellt man denn in cpp ein objekte array,
    also bei Java ist es ganz einfach

    objekt ob[x][y];
    

    Wenn ich jetzt x/y von 1-9 laufen lassen hab ich 100 Objekte, die da heißen ob1,1 ob1,2 ob1,3
    Genau das würde ich gerne in cpp machen.
    Hab nur gefunden, dass es so geht

    objekt ob[3] ={1,2,3}
    

    In dem fall hab ich aber nur 3 Objekte, hab echt keine Ahnung wie es geht.
    Help please



  • object obj[12][13];

    so hast du 12*13 Objekte



  • ok, aber wie deklar. ich die jetzt??

    objekt ob[12][13]={??????

    😕



  • Wieso deklarieren? Du hast jetzt ein 2D Array welches 12*13Objekte vom Typ X enthält,
    bei der initialisierung wird für jedes der Objekte der Konstruktor aufgerufen,
    wodruch sie ihren Default-Wert haben.
    Möchtest du diese nun verändern machst du das wie in Java:

    class foo {
     public:
      foo () : i(0) {}
      void set (int j) { i = j;}
     private:
      int i;
    };
    
    int main () {
     foo array[12][13];
    
     for (int d1 = 0; d1 < 12; d1++)
      for (int d2 = 0; d2 < 13; d2++)
        array[d1][d2].set (d1 * d2);  // den Wert auf d1 * d2 setzen.
    
    }
    


  • Hey, genau das habe ich gemeint
    tausend dank.
    Hätte da nur noch eine sache, hab in meinem Prog alles in einem file,
    die main function und meine drei klassen.
    Irgendwie hat der komp. manchmal probleme meine objekte zu kennen,
    1. wie kann ich die Objekte den einbinden, das er sie kennt?



  • Hast du die Klassendefinitionen über deiner Main und den Funktionen die sie verwenden?
    Wenn nicht solltest du das tun, weil sonst hat der Compiler keine Informationen
    über die Eigenschaften deiner Objekte und kann so keine Fehler erkennen.



  • Ja habe ich aber so wie es ausschautliegt das Problem da dran, das ich ein objekt nur inder function abfragen kann wo ich es auch erzeugt hab, kann das sein?
    Anders geht es bei mir nicht.
    Sonst kommt immer der fehler:
    schiffe_main.cpp
    `uboot' undeclared (first use this function)

    Hab erst seit ner Woche was mit cpp zu tun, bin also absoluten newbee, aber ich dachte, man kann ein objekt überall abfragen.



  • Kennst du dich mit den Gültigkeitsbereichen bereits aus?
    Ein Objekt ist nur innerhalb seines Gültigkeitsbereiches bekannt (auch Scope genannt).

    Würd dir jetzt gern nen Link zu Shade of Mine's C++ Tut posten, aber meine
    zwischenablage geht grad nicht, kann nix mehr einfügen 😞

    Edit:
    So jetzt gehts wieder: http://tutorial.schornboeck.net/



  • Hey, danke. Also sehe ich es richtig, dass man ein objekt nicht an jeder Stelle im Prog benutzen kann.
    Wo liegt dann der große vorteil von objekten??
    Genau das brauche ich nähmlich für mein prog. 😞



  • Na ein Objekt ist ja nur ein selbst geschaffener Datentyp wie z.B. int,double,char,float,...
    die dir der Compiler zur Verfügung stellt.
    Du kannst bei einem Objekt den Zugriff kontrollieren uvm.

    Vllt. macht das für dich nach einer Woche noch keinen Sinn, aber glaube mir du wirst
    schon bald sehen wie toll es ist seine eigenen Klassen schreiben zu können 🙂

    Wenn du dein Objekt im ganzen Programm benötigst, könntest du es Global erzeugen,
    das geht so:

    class foo {
     public:
     foo () : i(0) {}
     void set (int j) { i = j; }
     private:
     int i;
    };
    
    foo GlobaleVariable;
    
    void bar (void) {
    
     foo.set (13);
    
    }
    
    int main () {
    
      foo.set (12);
      bar ();
    
    }
    

    Du kannst auf solch ein Objekt von überall in deiner Datei darauf zugreifen.


Anmelden zum Antworten