Deltak
12/5/2006 4:21:00 PM
chips wrote:
> Deltak napisaÅ?(a):
>
>>Mamy klase:
>>
>>class tmp_node {
>>private:
>> int *T;
>> char **tab_name;
>>public:
>> tmp_node( int tmp_st_num);
>>};
>>
>>Konstuktor:
>>tmp_node::tmp_node( int tmp_st_num)
>>{
>> for ( int i=0; i< trans_num; i++) { //trans num jest dostepny z
>>innej klasy
>> T= new int[ tmp_st_num];
>> tab_name= new char[ tmp_st_num];
>> }
>>};
>>
>>W ciele funkcji skladowej innej klasy chce stworzyc tablice wezlow:
>>
>>tab_tmp_node= new tmp_node[trans_num];
>>
>>Jskk przekazaæ parametr tmp_st_num, skoro nie wolno tylko uzyc
>>konstruktora domniemanego przy twozeniu tablicy operatorem new.
>>Czy jest na to rozwiazanie inne ni¿ stworzenie funkcji inicjalizujacej.
>>Czy w ogole funkcja inicjalizujaca bedzie dzialaæ?
>>po co w takim razie kontruktor skoro i tak musze uzywac funkji
>>inicjalizujacej?
>>
>>Deltak
>
>
> To nie jest odpowiedź na Twoje pytanie, ale przyjrzyj siÄ?
> konstruktorowi - tworzysz tablice T i tab_name bez zwalniania PRZY
> KAÅ»DYM przebiegu pÄ?tli! Poważny wyciek pamiÄ?ci, no i czy na pewno
> program Ci siÄ? nie wykÅ?ada? :>
>
Ale na tym etapie nie moge jeszcze zwolnic pamieci. Chce stworzyc
dynamicznie tablice obiektow: tmp_node, a do tego jeszcze w kazdym
obiekcie chce dynamicznie tworzyc tablice elementow podstawowych typow.
Nie wydaje mi sie to tak strasznie dziwne. nie chce na sztywno okreslac
rodzmiaru tablic T[] i char *tab_name[].
Deltak