Array von Klassenobjekten



  • Hallo,

    bin ein ziemlicher c++ Neuling, und versuche gerade ein Array mit Objekten meiner selbstdefinierten "Box" KLasse zu füllen. KLappt aber irgendwie nicht so richtig. Evtl. kann mir da ja jemand helfen. Ich habs so gemacht:

    class Box
    {
         public:
            Box(int itsLength, int itsWidth, int itsHeight)
            {
              Length = itsLength;
              Width = itsWidth;
              Height  = itsHeight;
            };
            Box();
    
            int getItsLength() const{return Length;}
            int getItsWidth() const{return Width;}
            int getItsHeight() const{return Height;}
            int CalculateVolume();
         private:
            int Length;
            int Width;
            int Height;
    
    };
    

    Dann in ner anderen Funktion folgendes:

    int i;
    Box *Boxlist;
    Boxlist = new Box[n];
    for (pieceCtr = 0; pieceCtr < currCartonItem->Quantity; pieceCtr++)
          {
            if (pieceCtr > 0)
              i++;
            cl_carton_item_idx[i] = itemCtr;
    
            Boxlist[i] = Box((currPickLoc->Length)/10000, 
                      (currPickLoc->Width)/10000, (currPickLoc->Height)/10000);
          }
         printf("Box %d: L: %.0f W: %.0f H: %.0f\n",
            i, Boxlist[i].getItsLength(), Boxlist[i].getItsWidth(), 
             Boxlist[i].getItsHeight());
        }
    

    wenn ich das compiliere bringt er mir einen Linker Error:
    [Linker Error] Unresolved external 'Box::Box()' referenced from C:\...

    Hoffe, mir kann jemand helfen,

    vielen Dank,
    Chrissi



  • mach aus Box(); ein Box(){}



  • Ah.. danke!
    Jetzt macht er zwar immer noch nicht was er soll, aber zumindest mal keinen Fehler mehr 🙂



  • So, jetzt hats auch ganz geklappt, und steht alles schön drinnen.

    Jetzt würde ich dieses Array allerdings gerne nach der Länge der Boxen sortieren. Geht das irgendwie mit der vorgefertigten sort Funktion, oder muss ich mir da selber was basteln? Was wäre da denn am sinnvollsten?

    Nochmal danke,
    Chrissi



  • ChrissiC schrieb:

    So, jetzt hats auch ganz geklappt, und steht alles schön drinnen.

    Jetzt würde ich dieses Array allerdings gerne nach der Länge der Boxen sortieren. Geht das irgendwie mit der vorgefertigten sort Funktion, oder muss ich mir da selber was basteln? Was wäre da denn am sinnvollsten?

    Nochmal danke,
    Chrissi

    Du kannst die std::sort-Funktion dafuer nehmen, musst allerdings ein paar
    Kriterien dafuer erfuellen. Schau dir dazu mal folgenden Thread an:
    http://www.c-plusplus.net/forum/viewtopic.php?t=85532&highlight=sort

    mfg
    v R



  • Danke ich habs hinbekommen ! 🙂


Anmelden zum Antworten