• [^] # Re: Comment ça marche ?

    Posté par . En réponse à la dépêche Al Stevens n'aime pas QT. Évalué à 1.

    Non non, je ne confonds rien du tout :-)

    Je veux dire par "mécanisme d'héritage" que si le codeur n'a pas besoin de se cogner les delete à la man, c'est parce qu'il y a un ancêtre à son objet qui, dans son destructeur, contient déjà le code qui le fait.

    Je voulais surtout signaler que dans le cas de Qt, la libération mémoire se fait par un tout bête "delete object", alors que dans un GC, on doit implémenter des trucs du genre :

    getReference(Object)
    {
    memList[Object].references++;
    return memList[Object].pointer;
    }

    releaseReference(Object)
    {
    memList[Object].references--;
    if (!memList[Object].reference)
    {
    delete memList[Object].pointer;
    removeObjectFromMemList(Object);
    }
    }

    ... et tout ça en priant pour qu'à aucun moment le codeur n'ai dupliqué une référence, par exemple en oubliant de surcharger un opérateur d'affectation ...

    Bref, en raccourci pour faire simple, dans un cas on gère des pointeurs, dans l'autre des handles.