brauche Hilfe bei Array Klasse...



  • Das ist mein Code:

    #include <assert.h>
    
    int size = 12;
    
    class Int_Array
    {
    public:
    	Int_Array(int Gr = size);
    protected:
    	int Groesse;
    	int *IA;
    };
    
    Int_Array::Int_Array(int Gr)
    {
    	Groesse=Gr;
    	IA = new int[Groesse];
    	assert(IA!=0);
    
    	for(int i=0; i < Gr;++i)
    		IA[i]=0;
    }
    
    int main(int argc,char *argv[])
    {
    	Int_Array Hallo;
    
    	Hallo[0]=3;        //funktioniert nicht! Warum???
    
    	return(0);
    }
    

    COMPILER schrieb:

    error C2676: Binaerer Operator '[' : 'class Int_Array' definiert diesen Operator oder eine Konvertierung in einen für den vordefinierten Operator geeigneten Typ nicht

    Normal müsste das doch funktionieren, da wenn keine Größe angegeben wurde das Int_Array die größe 12 bekommt!?

    oder denke ich da falsch???
    wo ist mein Fehler???

    thx im voraus mfg hohesC



  • Woher sollte der Compiler wissen was du mit dem op[] meinst?



  • Hallo,

    die Meldung sagt es doch schon: Du hast den operator[] nicht definiert.



  • wie definiere ich den operator []?

    mfg hohesC



  • class Int_Array
    {
      public:
        // ...
        int& operator [] (std::size_t i)
        {
           assert(i < Groesse);
           return AI[i];
        }
    
        const int& operator [] (std::size_t i) const
        {
           assert(i < Groesse);
           return AI[i];
        }
        // ...
    };
    

    kauf dir am besten erstmal nen buch über cpp ^^



  • @spastidernichtseinennamenschreibenkann ^^guter witz 🙄

    thx @CarstenJ & @Shade Of Mine


Anmelden zum Antworten