Sto lavorando in C ++ e ho questo problema.
class Container {
Container(int which_type_to_use_a_b_or_c);
A & getData(A & prototype);
B & getData(B & prototype);
C & getData(C & prototype);
private:
A a;
B b;
C c;
int type_used;
}
Solo uno dei tipi di dati A, B o C viene effettivamente utilizzato in una classe di istanza Container. La bandierina del costruttore decide quale usare. Quando è il momento di ottenere un riferimento all'oggetto interno, ho bisogno di una routine getData che restituisca il riferimento del diverso tipo. Per disambiguare, passo un "prototipo" A () B () o C ().
Non mi piace molto questo schema, ma non riesco a trovare nulla di meglio a causa della mia tavolozza limitata in c ++. Avete altri approcci disponibili? tieni presente che il contenitore dei modelli su A, B o C non è un'opzione a causa di altri vincoli.