Klasa reprezentująca wektor...

0

... a dokładnie wektor liczb całkowitych.

Jakbyście to rozumieli? Czy liczby mają być polami klasy?
Do zarządzania pamięcią mam użyć operatorów 'new' i 'delete'.

1

pomijając fakt, że już jest std::vector, to pisząc coś takiego raczej w jednym polu trzymałbym tablicę liczb, a w drugim ilość elementów. do tego dodał bym jakieś metody implementujące działania na wektorze

0

Udało mi się stworzyć coś takiego;

class Wektor{
private:

int w1[5];                   //pola klasy
int w2[20];


w1.add(5678);         //metody klasy
int aa=w1.get(0);
int  s=w1.size();

};

 

Powinienem jeszcze napisać coś do zarządzania pamięcią.
Prosiłbym o podpowiedź.

0

Pytasz o powyższy kod? Jest to deklaracja klasy.
Przepraszam, jeśli kogoś obraziłem...

0
  1. Nie jest to deklaracja klasy
  2. Przeczytaj pierwszy lepszy tutorial o klasach
  3. Konstrukcja powinna wyglądać tak:
  • alokujesz miejsce na n elementów
  • zapełniasz to miejsce stopniowo
  • gdy je zapełniasz, to alokujesz 2 razy wiecej miejsca i kopiujesz dane z poprzedniej tablicy, potem usuwasz ja (stara)
0

Przepraszam, jest to oczywiście definicja klasy.
Czy alokacja powinna być zrobiona przy pomocy funkcji 'alloc'?

0

Problem z tym kodem jest taki że nie ma szans się skompilować...

Prosty szablon który możesz wypełnić resztą metod:

class Wektor{
private:
    int *data;
 
public:
    Wektor() { data = new int[4]; }
    ~Wektor() { delete data; }
    void add(int i);
    int& at(int i) { return data[i]; }
    const int& at(int i) const { return data[i]; }
};

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