Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - cast da superclasse a sottoclasse
Forum - C/C++ - cast da superclasse a sottoclasse

Avatar
anthony015 (Member)
Pro


Messaggi: 116
Iscritto: 20/05/2011

Segnala al moderatore
Postato alle 21:22
Mercoledì, 25/05/2011
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

  1. class super{};
  2. class sotto1:public super
  3. {
  4.         private int a;
  5.         public sotto1(int b)
  6.         {
  7.               a=b;
  8.         }
  9. };
  10. class sotto2:public super
  11. {
  12.         private double a;
  13.         public sotto2(double b=0)
  14.         {
  15.               a=b;
  16.         }
  17. };


main:
Codice sorgente - presumibilmente C/C++

  1. int main()
  2. {
  3.      sotto1 x(2);
  4.      sotto2 y(34);
  5.      super array[2];
  6.      array[0]=x;
  7.      array[1]=y;
  8.      sotto1 z=(sotto1)array[0]; //mi da errore
  9. }


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
PM
Avatar
Il Totem (Admin)
Guru^2


Messaggi: 3635
Iscritto: 24/01/2006

Up
1
Down
V
Segnala al moderatore
Postato alle 17:35
Giovedì, 26/05/2011
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
PM