Mireczki mam pytanie przed egzaminem z C++. Chodzi o klasy i tablice dynamiczne:
Mam jakąś klasę, która ma pola prywatne **rozmiar_tablicy i wskaźnik** na tablicę liczb całkowitych
int * tablica .
W polach publicznych mamy konstruktor (który tworzy tablicę o zadanym rozmiarze i w każdej komórce ustawia 0) i funkcjęktóra wyświetla konkretną komórkę tablicy.
Problem polega na tym, że gdy stworzę sobie dynamicznie tablicę
int* tablica =new int [rozmiar_tablicy];
i wyzeruję jej elementy forem kodto program "nie pamięta" poza konstruktorem, że elementy były wyzerowane. Jak temu zaradzić?
@Meteor100: stworzyłeś tablicę i zamiast przypisać wskaźnik na pole tablica w twojej klasie, przypisałeś go całkowicie innej zmiennej, ale mającą taką samą nazwę
Mam jakąś klasę, która ma pola prywatne **rozmiar_tablicy i wskaźnik** na tablicę liczb całkowitych
int * tablica
.W polach publicznych mamy konstruktor (który tworzy tablicę o zadanym rozmiarze i w każdej komórce ustawia 0) i funkcjęktóra wyświetla konkretną komórkę tablicy.
Problem polega na tym, że gdy stworzę sobie dynamicznie tablicę
int* tablica =new int [rozmiar_tablicy];
i wyzeruję jej elementy forem
kod
to program "nie pamięta" poza konstruktorem, że elementy były wyzerowane. Jak temu zaradzić?TUTAJ KOD: http://pastebin.com/dau7Biyr
#programowanie #jezykc #cplusplus #podstawyprogramowania
int* tablica =new int [rozmiar_tablicy];
powinno być samo
tablica =new int [rozmiar_tablicy];
dodałem kod z pastebina na końcu mego wpisu
może ktoś mi wyjasnić różnicę w zapisach? bo mój sposób używałem "bezmyślnie" jako kreator nowej tablicy.
int *
i zostaw samo
tablica = new int [rozmiar];
BTW. Jak przydzielasz pamięć, to wypadałoby w destruktorze ją zwalniać. To nie java.