Home
Accesso / Registrazione
 di 

Programmazione orientata agli oggetti in ANSI-C. Implementazione

Programmazione orientata agli oggetti in ANSI-C. Implementazione

Con gli assiomi di cui sopra, i metodi isA() e isOf() sono abbastanza semplici da implementare:

% isA {
return _self && classOf(_self) == class;
}
% isOf {
if (_self)
{ const struct Class * myClass = classOf(_self);
if (class != Object)
while (myClass != class)
if (myClass != Object)
myClass = super(myClass);
else
return 0;
return 1;
}
return 0;
}

Una prima, molto semplice implementazione di cast() si può basare su isOf():

% cast {
assert(isOf(_self, class));
return (void *) _self;
}

isOf(), e di conseguenza cast(), determinano errori se i puntatori sono null. IsOf() si basa senza ulteriori verifiche che un qualsiasi puntatore punti ad almeno un'istanza di Object: di conseguenza possiamo essere sicuri che cast(Object,x) restituirà errori solamente di fronte a puntatori nulli. Tuttavia, come vedremo nella sezione 8.5, questa soluzione è ampiamente perfettibile.

 

 

Scrivi un commento all'articolo esprimendo la tua opinione sul tema, chiedendo eventuali spiegazioni e/o approfondimenti e contribuendo allo sviluppo dell'argomento proposto. Verranno accettati solo commenti a tema con l'argomento dell'articolo stesso. Commenti NON a tema dovranno essere necessariamente inseriti nel Forum creando un "nuovo argomento di discussione". Per commentare devi accedere al Blog
ritratto di PC

Mai visto un blog così

Mai visto un blog così interessante

ritratto di Emanuele

Il tuo commento, proprio su

Il tuo commento, proprio su un tutorial di programmazione C (orientata agli oggetti) mi fa molto piacere. Grazie!

 

 

Login   
 Twitter Facebook LinkedIn Youtube Google RSS

Chi è online

Ci sono attualmente 5 utenti e 85 visitatori collegati.

Ultimi Commenti