Visualizzazione dei risultati da 1 a 10 su 20

Discussione: polimorfismo per dati

Visualizzazione discussione

  1. #5
    Utente di HTML.it
    Registrato dal
    Oct 2014
    Messaggi
    315
    Quote Originariamente inviata da andbin Visualizza il messaggio
    Piccola nota: se Punto rappresenta un punto 2D (quindi x,y) e PuntoTridimensionale lo estende aggiungendo la z .... allora la ereditarietà è sbagliata a priori concettualmente: un punto 3D NON è un caso "particolare" di punto 2D.
    hai perfettamente ragione, ho utilizzato quell'esempio giusto per capire.

    Quote Originariamente inviata da andbin Visualizza il messaggio
    Se PuntoTridimensionale estende Punto, la seconda riga è tecnicamente corretta per il compilatore (e compila) (ogg potrebbe fare riferimento ad un oggetto PuntoTridimensionale) ma a runtime il downcast fallirà sempre, perché l'oggetto realmente istanziato è un Punto (l'hai assegnato poco prima ...), che ovviamente non è un PuntoTridimensionale.
    E come si può risolvere il problema dell'area di puntamento?
    Quello che non mi è chiaro è cosa fa esattamente questa istruzione:
    Punto ogg = new PuntoTridimensionale();
    Cioè viene innanzitutto creato un reference di tipo Punto, a quel punto si passa al reference un oggetto di tipo PuntoTridimensionale e quindi il reference a quel punto conterrà un indirizzo di memoria (dove si trova l'oggetto) e un'area di puntamento. Quest'area di puntamento in teoria dovrebbe essere quella di PuntoTridimensionale visto che voglio poter accedere tramite ogg ai membri di PuntoTridimensionale, ma in realtà non è così e vorrei capire il perchè.

    EDIT: l'area di puntamento la "prende" da ciò che si trova a sinistra dell'uguale? scusate per la rozzezza ma voglio capire.
    Ultima modifica di newutente; 17-11-2014 a 18:01

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.