Praca z klasą w której mieści się tablica.

0

Witam programistów , proszę o pomoc/podpowiedź jak zacząć program podany w załączniku z Klasą Vector.
Niestety nauczycielka(ukrainka) nie wyjaśniła jak się bawić z tablicami w classie,a z poprzednimi zadaniami związanymi z przeciążeniami operatorów,class Ułamek oraz Weight nie miałem problemu.
Nie proszę o gotowe rozwiązania,lecz o podpowiedzi/jakieś przykłady jak obchodzić się z tablicami w classie.

zad5.png

3

Jak ja uwielbiam jak "nauczyciele" każą wynajdować ludziom koło na nowo...
Celem tego zadania jest stworzenie własnej implementacji std::vector, która będzie przechowywać elementy. Aby zrobić to jak należy potrzebujesz zapoznać się z :

  • szablonami aby dało się dowolny typ włożyć
  • przeciążanie operatorów
  • podobnie owe połączone operacje, niech owa Ukrainka w swym geniuszu oświeci nas maluczkich, co ma wyjść w przypadku sumy Vector<int> + Vectorstd::string
  • operator kwestowania? O Swarogu, Perunie, Trygławie i Welesie, a cóż to za licho??? Chyba, że się kobita fikła, i chodziło jej o konwersję do std::stringa - ale tutaj znów musi jasno określić, dla jakich danych wejściowych jaki ma być efekt wyjściowy. Wstępnie obstawam coś takiego:
Vector<int> w{1, 2, 3, 4, 5};
std::string s = w.toString();//s = "1, 2, 3, 4"
0

Trochę jaśniej.
Ale jak zadeklarować w pliku nagłówkowym składową zawierającą tablicę dla classy vector statycznie by to się kupy trzymało.

1

Musisz nauczyć się szablonów. Poniżej takie absolutnie minimalne minimum będące zalążkiem twojego wektora:

template<typename T>
class Vector
{
public:
    Vector<T>() = default;
    virtual ~Vector() = default;

protected:
    T *table = nullptr;    
};

https://onlinegdb.com/Sy2y0zotE
Pierwszym twoim zadaniem Bracie będzie dopisanie inicjalizacji tej wewnętrznej tablicy na jakieś rozmiary:

  • domyślny
  • podany przez użytkownika

Następnym to zadbanie o zwalnianie zasobów kiedy obiekt tej klasy Vector przestaje istnieć. Kolejnym zadbanie o to, żeby dało się w razie potrzeby zmieniać rozmiar tablicy.
Ponadto będzie cię czekać obsługa zmiany rozmiaru, oraz zwalnianie pamięci

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