Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
ho il seguente problema: ho un array di oggetti di "superclasse", il quale contiene svariati oggetti di svariate sottoclassi, sapendo che in una determinata posizione dell'array ho posizionato un oggetto di una sottoclasse nota, come posso effettuare l'operazione di casting da superclasse a sottoclasse?
Codice sorgente - presumibilmente Java
classsuper{};
class sotto1:publicsuper
{
privateint a;
public sotto1(int b)
{
a=b;
}
};
class sotto2:publicsuper
{
privatedouble a;
public sotto2(double b=0)
{
a=b;
}
};
main:
Codice sorgente - presumibilmente C/C++
int main()
{
sotto1 x(2);
sotto2 y(34);
super array[2];
array[0]=x;
array[1]=y;
sotto1 z=(sotto1)array[0]; //mi da errore
}
c'è un modo per ridefinire il casting nel modo che mi serve, oppure c'è un'altra soluzione?
grazie
Ultima modifica effettuata da anthony015 il 25/05/2011 alle 21:23
C'è un problema concettuale. Non ti dovrebbe servire sapere che in un dato posto dell'array esiste un oggetto il cui tipo è più derivato di quello dell'array stesso. Il codice dovrebbe dipendere dall'astrazione e non dai dettagli.
hai ragione... è che cercavo di ricreare i tipi primitivi come oggetti, prendendo spunto dal Java, per potere successivamente fare una cosa tipo Vector che può tenere questi vari tipi... - anthony015 - 26/05/11 19:07