Re: Polje klase
Ako se u metodi klase koristi neko polje ili drugu metoda, to polje/metoda
moraju biti definisani metode u kojoj se koriste.
U metodama mozete pretpostavite da ne mogu da se pozivaju konstruktori
klase kojoj metoda pripada:
class X{
int m;
void (X x)
X a;
{
a = x; //ovo moze
a = new X(); //ovo ne moze
}
int n;
}
Ovo pretpostavite zato sto u trenutku poziva konstruktora morate da znate
velicinu klase, a stvarnu velicinu klase znate tek na kraju definicije
klase kada se obrade sva polja.
U ovom primeru u trenutku generisanja new X() klasa je velicine 1 rec/4
bajta posto sadrzi samo n, a na kraju definicije klase velicina je 2 reci/
8 bajta sto je stvarna velicina objekata klase.
Ne morate da menjate gramatiku samo u test ulazima nece biti primera koji
sadrze ovakve pozive konstruktora.
Pozdrav,
Jovan
> I ja se nadam da je to dozvoljeno podrazumevati. Inace bi bilo dosta tesko
> da se realizuje.
> Trebalo je da prodju godine, pa da se naprave parseri za C++, Javu, C#
> koji
> mogu takve stvari da "svare", a mi ipak prvi put pravimo kompajler :).
>
> Nadam se da ce asistent potvrditi nasa ocekivanja u vezi sa ovim
> problemom.
>
> Pozdrav
>
> 2006/6/7, Nikola Kartelija <kartel@ptt.yu>:
>>
>> Izvini, izlupetao sam se. Kad sam poslao mail, shvatio sam u cemu je
>> problem I ne vidim resenje, osim da se sva polja deklarisu pre metode u
>> kojoj se koriste.
>>
>>
>> ------------------------------
>>
>> *From:* Rade Jakovljević [mailto:radegm@gmail.com]
>> *Sent:* Tuesday, June 06, 2006 9:44 PM
>> *To:* ri4pp@rti.etf.bg.ac.yu
>> *Subject:* [ri4pp] Polje klase
>>
>>
>>
>> Da li u specifikaciji nase mikrojave stoji da u klasi moraju biti
>> definisana prvo polja pa tek onda metode koje koriste ta polja.
>> Problem je sto ako se polje definise iza metode, pri obradi te metode se
>> polje jos uvek ne nalazi u tabeli simbola, pa se prijavljuje semanticka
>> greska.
>> Da li se sme podrazumevati da je potrebno da deklaracije polja budu
>> ispred
>> deklaracija metoda u telu klase?
>>
>> P.S.: Sad razumem zasto u Pascalu i C-u moramo da definisemo promenljive
>> na pocetku bloka. :).
>>
>> Pozdrav
>>
>> -----------------------------------------------------------------
>> unsubscribe:
>> minimalist@rti.etf.bg.ac.yu?subject=unsubscribe%20ri4pp
>> -----------------------------------------------------------------
>>
>>
>>
>
moraju biti definisani metode u kojoj se koriste.
U metodama mozete pretpostavite da ne mogu da se pozivaju konstruktori
klase kojoj metoda pripada:
class X{
int m;
void (X x)
X a;
{
a = x; //ovo moze
a = new X(); //ovo ne moze
}
int n;
}
Ovo pretpostavite zato sto u trenutku poziva konstruktora morate da znate
velicinu klase, a stvarnu velicinu klase znate tek na kraju definicije
klase kada se obrade sva polja.
U ovom primeru u trenutku generisanja new X() klasa je velicine 1 rec/4
bajta posto sadrzi samo n, a na kraju definicije klase velicina je 2 reci/
8 bajta sto je stvarna velicina objekata klase.
Ne morate da menjate gramatiku samo u test ulazima nece biti primera koji
sadrze ovakve pozive konstruktora.
Pozdrav,
Jovan
> I ja se nadam da je to dozvoljeno podrazumevati. Inace bi bilo dosta tesko
> da se realizuje.
> Trebalo je da prodju godine, pa da se naprave parseri za C++, Javu, C#
> koji
> mogu takve stvari da "svare", a mi ipak prvi put pravimo kompajler :).
>
> Nadam se da ce asistent potvrditi nasa ocekivanja u vezi sa ovim
> problemom.
>
> Pozdrav
>
> 2006/6/7, Nikola Kartelija <kartel@ptt.yu>:
>>
>> Izvini, izlupetao sam se. Kad sam poslao mail, shvatio sam u cemu je
>> problem I ne vidim resenje, osim da se sva polja deklarisu pre metode u
>> kojoj se koriste.
>>
>>
>> ------------------------------
>>
>> *From:* Rade Jakovljević [mailto:radegm@gmail.com]
>> *Sent:* Tuesday, June 06, 2006 9:44 PM
>> *To:* ri4pp@rti.etf.bg.ac.yu
>> *Subject:* [ri4pp] Polje klase
>>
>>
>>
>> Da li u specifikaciji nase mikrojave stoji da u klasi moraju biti
>> definisana prvo polja pa tek onda metode koje koriste ta polja.
>> Problem je sto ako se polje definise iza metode, pri obradi te metode se
>> polje jos uvek ne nalazi u tabeli simbola, pa se prijavljuje semanticka
>> greska.
>> Da li se sme podrazumevati da je potrebno da deklaracije polja budu
>> ispred
>> deklaracija metoda u telu klase?
>>
>> P.S.: Sad razumem zasto u Pascalu i C-u moramo da definisemo promenljive
>> na pocetku bloka. :).
>>
>> Pozdrav
>>
>> -----------------------------------------------------------------
>> unsubscribe:
>> minimalist@rti.etf.bg.ac.yu?subject=unsubscribe%20ri4pp
>> -----------------------------------------------------------------
>>
>>
>>
>
- References:
- Polje klase
- From: "Rade Jakovljević" <radegm@gmail.com>
- RE: Polje klase
- From: "Nikola Kartelija" <kartel@ptt.yu>
- Re: Polje klase
- From: "Rade Jakovljević" <radegm@gmail.com>
- Polje klase
Previous by date: Re: Polje klase
Next by date: designator problem
Previous by thread: Re: Polje klase Next by thread: designator problem
Previous by thread: Re: Polje klase Next by thread: designator problem