prob mit AnsiString bei einer selbstgebastelten template



  • hola leute

    folgende prob:

    ich hab mich heute einbisschen in templates probiert.
    als erstes hab ich mir so nen 08/15 vector gebastelt.
    funktioniert ansich recht gut, aber bei den AnsiStrings will er nicht.
    da bekomme ich immer einen zugriffsfehler. nachdem es also mit borland-kompos die probleme gibt hab ich mich nicht ins C++ sondern hierher gewannt.

    mal bisschen code:

    void __fastcall TForm1::Button1Click(TObject *Sender)
    {
       TxlVector<AnsiString> test;
       test.AddEmptyObject() = "Meep Meep";
       test.AddEmptyObject() = "Meep Meep";  // (1)
    
       ShowMessage(test[0] + test[1]);
    }
    

    hier teste ich das mit nem button aus. bei (1) kommt der fehler:
    Zugriffsverletzung bei Adresse bla bla bla. Lesen von Adresse 00000012. bla bla

    template <class object>
    object& TxlVector<object>::AddEmptyObject(void)
    {
       if(!vector_list)
       {
          vector_list = new object[1];
          vector_size = ++vector_count;
       }
       else
       {
          if(vector_count < vector_size)
          {
             ++vector_count;
          }
          else
          {
             vector_size = ++vector_count;
             object *temp = new object[vector_size];
             CopyBuffer(temp,vector_list,sizeof(object) * vector_size);
             delete[] vector_list;
             vector_list = temp;
          }
       }
    
       return vector_list[vector_count - 1];
    }
    

    das is dann die methode die oben aufgerufen wurde. der fehler kommt in der return anweisung.
    kann mir jemand sagen wo ich da den fehler habe ? vielleicht seh ich mal wieder vor lauter baeume den wald nicht mehr.

    cermy

    Meep Meep


Anmelden zum Antworten