Array von Klassen übergeben



  • Hallo

    Ich hab folgendes (einfaches) Problem:

    Ich möchte von proceed (eine Funktion der Klasse level)
    auf das ganze Feld von Block bl zugreifen können
    aber ich weiss nicht wie ich referenzieren soll.

    #include <iostream>
    
    using namespace std;
    
    class block
    {
          public:
          int x;
          int y;
    
          block()
          {
               x=0;y=0;
          }
    
    };
    
    class level
    {
          public:
    
          void proceed(block& tb)
          {
    
               cout << tb[3].x;
          }
    };
    
    int main(int argc, char **argv)
    {
    
        block bl[10];
        level lvl;
        bl[3].x=3;
        bl[7].y=7;
    
        lvl.proceed(bl); 
        // proceed soll jetzt x von bl[3] 
        // und y von bl[7] ausgeben
        // d.h. ich brauch unbedingt vollen zugriff auf alle elemente von bl in proceed
    
        return 0;
    }
    

    mingw32 gibt mir nur fehlermeldungen, was mache ich falsch?
    Kann mir jemand helfen?



  • hey,
    ..zu dem code an sich werden bestimmt gleich noch genug Leute was sagen, aber nun gut...
    tip: probiere es mal mit
    void proceed(block* tb)



  • Ich habe es auf block* bl geändert (auch in main)
    Nun stellt sich die Frage wie ich denn nun einen Wert zuweise.
    Eigentlich müsste ich doch durch 3maliges inkrementieren des bl array
    und anschliessender Zuweisung per bl->x=3 Erfolg haben wenn wir bei dem
    Beispiel bleiben. Aber der Compiler wehrt sich.



  • traceman schrieb:

    Ich ... (auch in main)...

    Wieso das?
    Lesen



  • Beim ersten Versuch (ohne die Änderung in main) ist der Rechner abgestürzt. Nun
    geht alles. Lag wohl daran das ich nicht alles neu erstellt habe.

    Vielen Dank nochmals!


Anmelden zum Antworten