[cpl] Răspuns: Răspuns: [CPL][Tema2] Mostenire

Maxim Domentii domentiimaxim at yahoo.com
Wed Dec 2 13:30:19 EET 2015


Salut,
Daca am :

class Int inherits IntModel ....

Care dintre urmatoarele situatii vor genera erori ?

1. Int x = new IntModel

Aceasta situatie va genera o erroare intrucat nu poti instantia cu un tip de baza o variabila declarata de un tip derivat.

2. IntModel y = new Int

Aceasta este situatia care a fost deja lamurita in discutia la care am facut referire si nu va genera o eroare.

3. Int x
    IntModel y
    if ( x == y )

Din manualul de lcpl eu inteleg ca operatorul == poate fi folosit pentru a compara doi operanzi de tip:- Int (intregii fundamentali din lcpl)- un intreg si un String- oricare doua obiecte (toate celelalte clase din lcpl deriva din Object).
In cazul de fata, cum IntModel probabil este o clasa derivata din Object (ca toate clasele din lcpl, mai putin intregii) si Int deriva din IntModel, probabil se face o comparatie valida intre doi operanzi care refera obiecte diferite si va intoarce valoarea 0 (false).
Dar in acest caz probabil ar trebui sa existe o alta discutie. Se poate defini o clasa cu acelasi nume ca si a unui timp de date fundamental din lcpl? Se poate redefini tipul Int? Sau poate nu inteleg eu foarte bine specificatiile lcpl, daca sunt complete (in manual se precizeaza despre Int doar ca "intregii sunt un alt tip fundamental; Int nu este o clasa derivata din Object").
Max
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://cursuri.cs.pub.ro/pipermail/cpl/attachments/20151202/2bcc54c7/attachment-0001.html>


More information about the cpl mailing list