[cpl] [Tema 1] Nelamuriri self, operatorul ".", LocalDefinition

Bogdan Nitulescu bogdannitulescu at yahoo.com
Wed Oct 19 23:17:51 EEST 2016


Hello,

> 1. Operatorul "." este menționat că poate fi folosit într-o expresie 
> dispatch pentru a accesa metode membre ale unei clase. Se pot accesa 
> si variabilele membre?
Doar metodele membre, nu si variabilele

> 2. În legătură cu întrebarea 1 am observat că apar accesări de 
> variabile cu "." doar doar după "self" și doar în operații de 
> atribuire (care nu sunt menționate în manual) și că în nodurile din 
> AST apare setat LeftHandSide cu toată construcția concatenata (ex: 
> "self.variabila") ceea ce mi se pare cam dubios. 
Poti sa ne zici te rog unde le-ai vazut? Am avut "self.variabila" in 
anii precedenti in limbaj, dar l-am retras, ca sa mai reducem din 
complexitatea acestuia. Posibil sa fi scapat vreun test mai vechi sau un 
link neactualizat.
> 3. LocalDefinition mai primește un parametru la constructor numit 
> scope care, din ref-urile testelor, am observat ca nu e niciodata != 
> nullptr. Iar în manual mi se pare cam ambiguă forumlarea și nu am 
> înteles dacă o definiție locală are scope în toată metoda curentă sau 
> doar în block-ul unde apare definiția(gen block-ul unui if). Care este 
> scope-ul unui local definition și care e treaba cu parametrul de la 
> constructor?
Scope-ul unei definitii locale incepe imediat dupa definitie, si se 
termina la sfarsitulul blocului in care se gaseste definitia.

> Also, operatorul pentru static dispatch("::" nu apare în secțiunea de 
> priorități ale operatorilor.
Nu stiu daca este nevoie neaparat sa o specifici explicit.

Chiar sunt curios, te poti gandi la un exemplu ce contine :: si expresia 
respectiva poate fi parsata in doua feluri distincte, asa ca ai nevoie 
de prioritatea operatorului ca sa decizi?

Bogdan


On 19.10.2016 17:36, Deeplow via cpl wrote:
> Salut,
>
> Am câteva întrebări în legătură cu unele chestii care imi sunt puțin 
> neclare (în principiu bazate pe ce apare sau nu în manual/teste):
>
> 1. Operatorul "." este menționat că poate fi folosit într-o expresie 
> dispatch pentru a accesa metode membre ale unei clase. Se pot accesa 
> si variabilele membre?
>
> 2. În legătură cu întrebarea 1 am observat că apar accesări de 
> variabile cu "." doar doar după "self" și doar în operații de 
> atribuire (care nu sunt menționate în manual) și că în nodurile din 
> AST apare setat LeftHandSide cu toată construcția concatenata (ex: 
> "self.variabila") ceea ce mi se pare cam dubios. Mai pot apărea 
> expresii de genul și în alte părti(gen ca parametrii la funcții) sau 
> doar în atribuiri? Poate să apară în partea dreaptă a unei atribuiri?
>
> 3. LocalDefinition mai primește un parametru la constructor numit 
> scope care, din ref-urile testelor, am observat ca nu e niciodata != 
> nullptr. Iar în manual mi se pare cam ambiguă forumlarea și nu am 
> înteles dacă o definiție locală are scope în toată metoda curentă sau 
> doar în block-ul unde apare definiția(gen block-ul unui if). Care este 
> scope-ul unui local definition și care e treaba cu parametrul de la 
> constructor?
>
> Also, operatorul pentru static dispatch("::" nu apare în secțiunea de 
> priorități ale operatorilor.
>
> Dennis
>
>
> _______________________________________________
> cpl mailing list
> cpl at cursuri.cs.pub.ro
> http://cursuri.cs.pub.ro/cgi-bin/mailman/listinfo/cpl

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://cursuri.cs.pub.ro/pipermail/cpl/attachments/20161019/9842d203/attachment.html>


More information about the cpl mailing list