Klasa reprezentująca tablicę

0

Witam, dostałem do zrobienia klasę, która ma tworzyć tablicę intów. Klasa ma zawierać pola: nazwa tablicy oraz jej wielkość. Ma też zawierać wskaźnik na int'a, który ma być wskaźnikiem na początek tej tablicy. Ma też zawierać metody, które pozwalają zmienić nazwę tablicy, nadać wartość, odczytać wartość.. No jak odczytanie wartości, nadanie jest proste. Tak w ogóle nie wiem jak nadać nazwę tablicy skoro konstruktor ma ją tworzyć za pomocą new. W ogóle tego nie rozumiem, prosiłbym o jakieś podpowiedzi..

1

Nazwa pewnie ma być stringiem.

0

Tak, zgadza się. Tylko jak mam nadać nazwę tej tablicy wtedy? Czy to po prostu ta nazwa ma być taka "czysto teoretyczna"?
Skoro tablicę potem i tak tworzę:
int *wsk = new int[];

1

Tak samo jak ustalasz wielkość - przekazujesz w konstruktorze.

0

Ja chyba zgłupiałem. Jak "załączyć" tego stringa gdy tablicę tworzę:
int *wsk = new int[];
Tego nie rozumiem, tutaj.

1

string z nazwą ma być osobnym elementem klasy.

0

Tak, moje pola prywatne klasy wyglądają tak:
int n; string nazwa; int *pnt;
Więc ta "nazwa tablicy" ma być tylko taką teoretyczną jej nazwą na użytkownika? Czy ma się tworzyć tablica o dokładnej nazwie, którą poda user?

1

Pola w klasie mają być trzy:

  • nazwa tablicy czyli jakiś łańcuch;
  • rozmiar czyli najlepiej int bez znaku;
  • wskaźnik do początku tablicy.
0

Ma być dokładnie taka jaka zostanie przekazana, dlaczego miałaby być inna? wtf

0

Może ja po prostu źle rozumiem pojęcie "nazwy tablicy". Jeśli mam mieć taką nazwę jak podaje user to jak np. robić metodę, która ma uzupełniać tablicę w danej komórce o daną wartość?
pnt[n] = value;
Czy mam używać tu jakoś tej nazwy, którą podano w konstruktorze? O to mi tylko chodzi..`

1

Masz zajawkę:

#include<iostream>
using namespace std;

class tablica
{
	string nazwa;
	size_t rozmiar;
	int* wskaznik;

public:
	tablica(const string& nazwaTablicy, size_t rozmiarTablicy) 
		: nazwa(nazwaTablicy), rozmiar(rozmiarTablicy), wskaznik(new int[rozmiarTablicy])
	{
	}


	~tablica()
	{
		if (wskaznik)
			delete[] wskaznik;
	}
};

int main()
{
	tablica t("Moja tablica", 12);
	return 0; // <- postaw tutaj np. pułapkę debugera i zobacz sobie co jest w zmiennej `t`,
}
0

Czyli robiłem tak samo. Jak wrócę do domu to zdebuguję sobie to tak jak mówisz i dokładnie to przejrzę. Tylko dostałem jeszcze do stworzenia metodę:
ostream& wyswietl(ostream& strumien) const
Która do strumienia przekazanego jako parametr ma wysłać zawartość tablicy oraz jej nazwę. Strumień do którego wysłano dane ma również być zwracany jako wynik metody, przykład wywołania:
tab1.wyswietl(cout);
No i muszę przyznać, że tutaj to średnio rozumiem.
Parametrem funkcji ma być strumień typu ostream, no ale całkowicie nie rozumiem co ma ta metoda zwracać. Widzę jedynie jak obiekt jest przekazywany.

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