Zadanie, aby stworzyć typ do obsługi dowolnie dużych liczb całkowitych, które przechowywane są w pamięci w postaci list łączonych, gdzie pierwszy element to znak, następne to kolejne cyfry.
Mój pierwszy pomysł był taki:
Biblioteka(inne funkcje załączone, bo potrzebne do dalszego ciągu zad):
#ifndef LICZBY_H
#define LICZBY_H
#include<iostream>
using namespace std;
class Liczba
{
private:
//char znak;
int liczba;
public:
Liczba();
virtual ~Liczba() {}
friend ostream& operator<<(ostream&, const Liczba&);
friend istream& operator>>(istream&, Liczba&);
Liczba operator+(const Liczba&) const;
Liczba operator-() const;
Liczba operator-(const Liczba&) const;
Liczba operator*(int) const;
//sama to pisalam:
Liczba operator/(const Liczba &) const;
Liczba operator~()const;
};
#endif // LICZBY_H
.cpp nieskończony:
#include"liczby.h"
ostream& operator<<(ostream& os, const Liczba& L)
{
os << L.liczba;
return os;
}
istream& operator>>(istream& is, Liczba& L)
{
cout<<"Podaj liczbe: ";
is >> L.liczba;
return is;
}
Liczba::Liczba()
{
this->liczba=liczba;
}
Liczba Liczba::operator+(const Liczba& L) const
{
Liczba W;
W.liczba = this->liczba+L.liczba;
return W;
}
Liczba Liczba::operator-() const
{
//return Liczba (-this->liczba);
}
Liczba Liczba::operator-(const Liczba& L) const
{
return *this + (-L);
}
Liczba Liczba::operator*(int n) const
{
}
Liczba Liczba::operator/(const Liczba& L) const
{
}
i plan, aby w mainie wywoływać dane funkcje.
--------------------------------------
Jednak mam odp, iż należy zrobić "Wskaźnik do początku tej liczby i mieć listę w środku, potem można operatory przeładowywać".
Czy ktoś mnie nakieruje w takim razie jak to inaczej zacząć?