[Kos-dev] Progressions du WE

d2 kos-dev@enix.org
16 Oct 2001 10:34:36 +0200


Bonjour,

Quelques questions/remarques :
  - [pinaillage] En general, on parle de classe "abstraite" plutot que
    "virtuelle". Peut-etre qu'il faudrait que les interf. virtuelles
    s'appellent "abstraites" ?
  - Pour quelle raison une interface ne peut-elle pas heriter d'une
    autre interface (non virtuelle) ? Est-ce que c'est pour ne pas
    compliquer les choses lors de la construction/destruction (ie pas
    d'imbrication de constructeurs/destructeurs) ?
  - Je ne pige pas la difference entre private ("donnees propres a
    chaque instance") et resource ("les donnees dont les instances de
    l'interface ont besoin pour manipuler chaque entite dont le
    translator est une instance de cette interface"). En fait, a
    relire, c'est plus cette definition de resource que je ne
    comprends pas. A lire l'exemple qui suit, je ne vois pas la
    difference entre offset et donald de mickey : il s'agit d'une
    donnee d'une instance d'interface (qu'on appelle "translator" dans
    le texte qui va avec "resource") qui est soit "propre a chaque
    instance" (donald : private), soit qui "correspond a une variable
    dans ses propres donnees" (offset : resource). Quelle est la
    difference ?
  - Le 'shared' correspond au 'static' du C++ (peut-etre meme du
    Java), meme si dans le cas present il s'agit d'un delimiteur de
    section, alors qu'en C++/Java(?) il s'agit d'un attribut de
    variable. Je sais bien que le mot clef 'static' a 1565732
    significations differentes en C. Est-ce qu'on garde 'shared' au
    lieu du plus habituel 'static'.
  - Je vois que 'this' existe. Mais je me dis aussi qu'il serait bien de
    pouvoir acceder aux methodes parentes en cas de surcharge
    d'operateur. La methode habituelle du C++ (cast) risque de
    compliquer la moulinette de traduction. C'est pour ca qu'avoir un
    pointeur 'parent' serait aussi pas mal.
  - Est-ce qu'on sera toujours oblige d'ecrire 'this->name' pour
    acceder a la variable 'name' ?

Voila les quelques questions sur le document meme. Et maintenant,
comment cree-t'on une instance ? Comment l'utilise-t'on ? Peut-on
acceder a certaines methodes des interfaces sans les instancier ?

Mais j'aime bien, oui, j'aime bien. Malgre les apparences, le truc qui
me chiffonne le plus, c'est l'assymetrie entre interfaces abstraites
(non instanciables, heritables), et "concretes" (non heritables,
instanciables).

Bonne journee,

-- 
d2