[C++] - BigInt-Klasse

Philipp9494

Erfahrenes Mitglied
Hallo

Ich möchte gerne eine BigInt-Klasse in C++ programmieren.
Man muss ja dann den Speicherplatz mit new [], und delete [] je nach Bedarf erstellen.

Aber wie weis ich, wie groß ich das Array (werde int nehmen) machen soll.

mfg

Philipp9494
 
Hallo,

bspw. indem du einen std::string zur Initialisierung hernimmst (so ist es meines Erachtens bei solchen Klassen üblich):

C++:
#include <cstring>
#include <string>

class BigInt {
    int *number, number_size;

    public:
        BigInt(std::string n) {
            number_size = n.size();
            number = new int[number_size];
        }

        BigInt(const BigInt& i) {
            number_size = i.number_size;
            number = new int[number_size];
            memcpy(number, i.number, number_size);
        }

        ~BigInt() {
            delete[] number;
        }
};

int main() {
    BigInt a("12345678923567422990222");
    BigInt b = a;
}

Gruß,
RedWing
 
Zuletzt bearbeitet:
okey, danke für die Hilfe, werds so bald es geht ausprobieren.

Wenn es geklappt hat, werd ich es als Erledigt markieren..

mfg

Philipp9494
 
So, ich werd (noch) keine BigInt-Klasses programmieren, da ich gemerkt hab, dass ich (noch) zu wenig Erfahrung hab.

Aber ich glaub, das dein Konstruktor
C++:
#
BigInt(std::string n) {
            number_size = n.size();
            number = new int[number_size];
        }

falsch ist, da ja n nur zur größe verwendet wird, aber nicht auf number geschrieben wird..

mfg

Philipp9494
 
Hallo,
So, ich werd (noch) keine BigInt-Klasses programmieren, da ich gemerkt hab, dass ich (noch) zu wenig Erfahrung hab.

Aber ich glaub, das dein Konstruktor
C++:
#
BigInt(std::string n) {
            number_size = n.size();
            number = new int[number_size];
        }

falsch ist, da ja n nur zur größe verwendet wird, aber nicht auf number geschrieben wird..

mfg

Philipp9494

die Antwort war ja auch auf deine Frage bezogen. Wie man n kopiert hab ich mir gespart, da du ja nur wissen wolltest wie man die Größe bestimmen kann.

Gruß,
RedWing
 
Zurück