ho scritto il modello di visitatore come segue ma non capisco cosa sia la spedizione singola e doppia. AFAIK, la singola spedizione richiama un metodo basato sul tipo di chiamante in cui il doppio invio richiama un metodo basato sul tipo di chiamante e sul tipo di argomento.Che cos'è la spedizione singola e doppia?
Suppongo che la doppia spedizione avvenga in una gerarchia di classi singole, ma perché la classe visitatore ha due gerarchia di classi ma è ancora considerata come doppia spedizione.
void floppyDisk::accept(equipmentVisitor* visitor)
{
visitor->visitFloppyDisk(this);
}
void processor::accept(equipmentVisitor* visitor)
{
visitor->visitProcessor(this);
}
void computer::accept(equipmentVisitor* visitor)
{
BOOST_FOREACH(equipment* anEquip, cont)
{
anEquip->accept(visitor);
}
visitor->visitComputer(this);
}
void visitFloppyDisk(floppyDisk*);
void visitProcessor(processor*);
void visitComputer(computer*);
Spiegare utilizzando il codice di esempio fornito.
AFAIK, la prima spedizione è avvenuta su oggetti che invocano l'accettazione e la seconda spedizione su oggetti che invocano il metodo di visita.
Grazie.
Forse la lettura di questo [articolo ] (http://en.wikipedia.org/wiki/Multiple_dispatch) può aiutarti a capire il dispatch - non come è implementato in C++, ma il concetto –