Klasa reprezentująca N cyfrową liczbę

0

Cześć! Od jakiegoś czasu uczę się programowania w C++. Czasami jednak bywają momenty w których niezbędna jest wskazówka żeby przebrnąć dalej i zrozumieć. Możliwe, że zadanie które próbuję rozwiązać jest dla was banalnie proste - jednak mnie może uratować każda wskazówka. Bardzo, bardzo proszę o pomoc w zrozumieniu zadania.

Stworzyć klasę reprezentującą N cyfrową liczbę, w której liczba przechowywana jest jako N elementowa tablica cyfr. W klasie należy zdefiniować:

  • konstruktor tworzący liczbę na podstawie tablicy cyfr
  • operatory arytmetyczne, operator przypisania, porównania
  • funkcje wyprowadzającą liczę na standardowe wyjście

W żadnym wypadku nie liczę, że ktoś odwali za mnie całą robotę - po prostu zadanie mnie przerasta i bardzo liczę na waszą pomoc w wymyśleniu jak do tego podejść.

1

Ale czego nie rozumiesz, bo zadanie jest bardzo jasno określone?

0

jeśli dobrze to zrozumiałem to definiuję sobie klasę, w środku niej powinna być tablica dynamiczna. deklaruje sobie jakąś zmienną o typie wspomnianej klasy, nadaję temu wartość powiedzmy 6568. jakim sposobem mogę policzyć liczbę cyfr tak zeby to dalej działało jesli ktos wpisze 15-cyfrową liczbę? a wiec ta liczba wchodzi do klasy, tam jest fukcja ktora tworzy tablice np. 15-elementowa i zapisuje cyfry w poszczególnych komórkach tablicy.
i mam użyć operatorów arytmetycznych, czyli jesli dobrze mi sie wydaje to ma być dodawanie np 2 liczb o tym zadeklarowanym typie. czy to ma być funkcja dodawania znajdująca się w środku klasy czy jak to moze wyglądać?
no i 'funkcja wyprowadzająca liczbę na standardowe wyjście' nie bardzo wiem jak to rozumieć, bo klasa przecież nie zwraca zadnej wartosci bo to po prostu obiekt

0

Możesz przeciążyć poszczególne operatory.

0

przeciążyć operatory?

0
template<size_t N>
class Number{
	friend ostream &operator<<(ostream &, const Number &){
		// todo
	}
	friend Number operator+(const Number &, const Number &){
		// todo
	}
	friend Number &operator+=(Number &, const Number &){
		// todo
	}
	// etc
public:
	using digit_type = char;
	using container_type = array<digit_type, N>;
public:
    Number(){}
	Number(const container_type &ct): _container(ct){}
private:
	container_type _container;
};

1 użytkowników online, w tym zalogowanych: 0, gości: 1