Array-Funktionalität



  • Hallo allemiteinander,

    ich habe derzeit ein Problem mit meiner selbst geschriebenen Klasse, um mit beliebig großen Integer-Zahlen zu rechnen.

    Ich möchte meine Klasse nun so ergänzen, dass man Arrays diesen Typs erstellen kann.

    Ich meine das ungefähr so:

    //onoint ist der Klassenname
    onoint test("123456789");
    onoint array[3];
    array[0]=test;
    //und so weiter ...
    

    Jedoch habe ich leider keinerlei Ahnung, wie ich dass erreichen kann.
    Falls jemand weis, wie das geht, so wäre ich für dessen Hilfe sehr dankbar.

    Danke im Voraus,

    Prof. MAAD

    P.S.: Die Klasse gibts unter http://profmaad.pr.funpic.de/onoint/ zum Download



  • Hat nix mit Array zu tun du suchst nach dem Zuweisungsoperator =, den musst einfach in der Klasse entsprechend überladen dann klappt es.



  • OK, dann hat sich das Problem also geändert.

    Neue Frage:

    Kann mir jemand erklären, wie ich den Operator für meine Klasse definiere.

    Danke im Voraus,

    Prof. MAAD



  • class intspeicher
    {
    public:
    	intspeicher() : val(0) { }
    	intspeicher(const int& v) : val(v) { }
    	intspeicher(const intspeicher& v) : val(v.val) { }
    	void set(const int& v) { val = v; }
    	int get() { return val; }
    	intspeicher& operator = (intspeicher const& rh) 
    	{ 
    		val = rh.val; 
    		return *this;
    	} 
    private:
    	int val;
    };
    
    int main()
    {
        intspeicher a;     // -> intspeicher()
    	intspeicher b(15); // -> intspeicher(const int& v)
    	intspeicher c(b);  // -> intspeicher(const intspeicher& v)
    	a = c;             // -> intspeicher& operator =
    }
    

    http://tutorial.schornboeck.net/operatoren_ueberladung.htm



  • Wie sieht denn deine Klasse aus?

    Für eine normale Zuweisung müsste sowas gehen:

    onoint& operator= (const onoint& r)
    {
        /* Alle Member kopieren
         * z.B. mValue = r.mValue;
         */
        return *this;
    }
    

Anmelden zum Antworten