Eigener komplexer Datentyp

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Eigener komplexer Datentyp

    Also, wo fange ich am besten an...

    Genau. Also, ich habe vor einigen Tagen mal ein wenig mit 08/15 Verschlüsselung herumgespielt um habe dabei zu komplexe Algorithmen verwendet, als meine Schulklasse(ich bin selbst Schüler :D ) das verstehen könnte. Also habe ich mir gedacht ich schreibe einen eigenen Datentypen. Hier jetzt mein Problem:

    C-Quellcode: datentyp.h

    1. #pragma once
    2. #include <vector>
    3. #include <stdarg.h>
    4. class data
    5. {
    6. public:
    7. data();
    8. data(int num, char w, ...);
    9. ~data();
    10. data& operator=(const data& d);
    11. data& operator+(const data& d);
    12. data& operator-(const data& d);
    13. data& operator*(const data& d);
    14. data& operator/(const data& d);
    15. data& operator%(const data& d);
    16. data& operator+=(const data& d);
    17. data& operator+=(const int d);
    18. data& operator-=(const data& d);
    19. private:
    20. std::vector <char> objects;
    21. std::vector <char> vector;
    22. long long int vector_size;
    23. int object_overflow_add(char v, char o);
    24. };
    Alles anzeigen

    C-Quellcode: datentyp.cpp

    1. #include "datentyp.h"
    2. data::data()
    3. {
    4. for (int i = 0; i < 10; i++)
    5. objects.push_back(i);
    6. }
    7. data::data(int num, char w, ...)
    8. {
    9. va_list arguments;
    10. va_start(arguments, w);
    11. for (int i = 0; i < num; i++)
    12. objects.push_back(va_arg(arguments, char));
    13. va_end(arguments);
    14. }
    15. data & data::operator=(const data & d)
    16. {
    17. vector.resize(d.vector.size());
    18. for (int i = 0; i < vector.size(); i++)
    19. vector[i] = d.vector[i];
    20. return *this;
    21. }
    22. data & data::operator+=(const data & d)
    23. {
    24. return *this;
    25. }
    26. data & data::operator+=(const int d)
    27. {
    28. // TODO: hier Rückgabeanweisung eingeben
    29. }
    30. int data::object_overflow_add(char v, char o)
    31. {
    32. int actual;
    33. for (int i = 0; objects[i] != actual; i++)
    34. return -1;
    35. }
    36. data::~data()
    37. {
    38. }
    Alles anzeigen
    Also mein Problem ist jetzt: Wie schreibe ich eine Funktion, die zum aktuellen Vector-Element den wert hinzuzählt der in objects definiert ist? Zur Erklärung:
    Man soll entweder einen Wert (zb. 237 oder w23a) übergeben können. dann wird dieser wert bei objects rausgekramt der zb so aufgebaut ist:

    Wert:237wa
    Realer Wert:12345

    und die dann addiert. wenn er oben hinausläuft, soll er das beim nächsten Vector-Element (Vector[i - 1]) addieren und so weiter. kann mir da vielleicht jemand helfen?

    #EDIT: Nur so zur Info, ich hab grade erst angefangen ;)
    Grüße, Power_Gamer122