Si tratta di uno schema specifico e qual è il suo scopo? [chiuso]

0

Recentemente ho inciampato sul seguente codice C ++ che mi ha confuso un po ':

class One {/*definition*/};
template<class Base > class Two : public Base {/*definition*/};
template<class Base > class Three : public Base {/*definition*/};
template<class Base > class Four : public Base {/*definition*/};
class Five : public Four < Three< Two < One > > > {/*definition*/};

Conosco lo scopo dei modelli e più o meno quando e come usarli.

Esiste un nome o un modello comune per una cascata di diversi modelli?

Quando dovrei usare questo modello (invece di qualcosa di meno complesso)?

P.S .: la definizione della classe Five è in realtà vuota.

    
posta fiscblog 04.08.2014 - 15:50
fonte

1 risposta

3

Ad una ipotesi direi che l'autore stava implementando una forma di mixin.

La classe con la funzionalità primaria dell'oggetto sarebbe One , ma Two , Three etc stanno aggiungendo vari pezzi di funzionalità ortogonale che non sono particolarmente accoppiati alla classe primaria. Five è quindi solo un segnaposto per l'aggregazione.

    
risposta data 04.08.2014 - 16:15
fonte

Leggi altre domande sui tag