Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it L'avatar di wino_7
    Registrato dal
    Dec 2006
    Messaggi
    537

    Forme di polimorfismo in c++

    Salve a tutti vorrei sapere quali forme di polimorfismo supporta il linguaggio c++ e quali forme di polimorfismo supporta il java.
    Ho provato a vedere su internet ma non trovo nulla.

  2. #2
    Utente di HTML.it L'avatar di shodan
    Registrato dal
    Jun 2001
    Messaggi
    2,381
    Il C++ implementa il polimorfismo parametrico e dinamico. Java solo l'ultimo.
    http://www.eptacom.net/pubblicazioni/pub_it/oopgen.html
    This code and information is provided "as is" without warranty of any kind, either expressed
    or implied, including but not limited to the implied warranties of merchantability and/or
    fitness for a particular purpose.

  3. #3
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Originariamente inviato da shodan
    Il C++ implementa il polimorfismo parametrico e dinamico. Java solo l'ultimo.
    A partire dalla versione 5, Java supporta anche il primo, con l'introduzione dei Generics...


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  4. #4
    Utente di HTML.it L'avatar di wino_7
    Registrato dal
    Dec 2006
    Messaggi
    537
    Sul polimorfismo parametrico ho trovato pareche cose ma su quello dinamico nulla.
    Sai darmi qualche fonte ?

  5. #5
    Utente di HTML.it
    Registrato dal
    May 2009
    Messaggi
    124

    polimorfismo c++ e java?

    Salve ragazzi è il 3 post che creo oggi, e non sto facendo i compiti a casa, ma voglio capire delle differenze tra alcuni codici java e c++ che ora ho capito e vi ringrazio.

    l'ultimo mio dubbio e nella differenza nell'implementazione del polimorfismo in java e in c++.

    in c++ so che il polimorfismo e il relativo binding dinamico non è supportato di default,
    ma bisogna crearlo tramite l'attributo "virtual" da applicare ai metodi delle classi e passandogli i paramentri tramite puntatore, cosi' viene creata la vtable e scelto il metodo che spetta all'oggetto passato a run-time.

    in java so solo che il polimorfismo e il late-binding sono supportati nativamente, ma penso ci sia qualche altra differenza che non riesco a cogliere,

    esistono piu' forme di polimorfismo ?


    grazie e scusate il pressing.

  6. #6
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320

    Moderazione

    Era già stata aperta una discussione identica stamattina, 2 post sotto la tua... perchè aprirne un'altra????

    Le ho unite, così si fa prima e si scoprono le differenze...


    ... stamattina mi pare di fare la settimana enigmistica: cogli le differenze, unisci i puntini...


    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  7. #7
    Utente di HTML.it
    Registrato dal
    May 2009
    Messaggi
    124
    grazie mille scusa sono sbadato oggi!

  8. #8
    Utente di HTML.it L'avatar di shodan
    Registrato dal
    Jun 2001
    Messaggi
    2,381
    Originariamente inviato da LeleFT
    A partire dalla versione 5, Java supporta anche il primo, con l'introduzione dei Generics...
    Buono a sapersi.

    @wino_7
    Sul polimorfismo parametrico ho trovato pareche cose ma su quello dinamico nulla.
    Sai darmi qualche fonte ?
    Basta cercare "polimorfismo in C++". E' quello classico. Lo chiamo dinamico perché viene risolto a run time mentre quello parametrico basato su template è risolto a compile time.

    @asafa
    esistono piu' forme di polimorfismo ?
    Da un'occhiata al link della mia prima risposta, se non l'hai fatto.
    This code and information is provided "as is" without warranty of any kind, either expressed
    or implied, including but not limited to the implied warranties of merchantability and/or
    fitness for a particular purpose.

  9. #9
    Utente di HTML.it
    Registrato dal
    May 2009
    Messaggi
    124
    grazie per la disponibilità .....
    ma sto facendo confusione perchè su internet vengono chiamati in modi molto diversi......

    io credevo che le 2 categorie fossero ad hoc e parametrico ........ e parametico stava per dinamico.

    invece ora sto in confusione......

    per parametrico credevo che fosse il caso in cui alla funzione oltre a passare i parametri passo pure il tipo dei parametri <T> funzione (<T> a <T> B )...

    dove <T> è il tipo dei paramentri.... e penso questo venga fatto anche a run-time perchè dipende dalle chiamate.

    pero come dici tu dividento in paramentro e dinamico mi sono incasinato....

    grazie anticipatamente

  10. #10
    Utente di HTML.it L'avatar di shodan
    Registrato dal
    Jun 2001
    Messaggi
    2,381
    Originariamente inviato da asafa
    pero come dici tu dividento in paramentro e dinamico mi sono incasinato....
    Meglio chiarire le cose allora.
    Parlando di polimorfismo si intende sempre quello classico risolto a run time, con classi derivate, vtable, virtual etc.

    Il nome "polimorfismo parametrico", io (come te) l'ho tratto da quel link ed è una conseguenza dell'uso dei template. Perché allora definirlo "polimorfismo parametrico"? Considera questo codice:
    codice:
    struct Type1 {
    	void stampa() {cout << "Type1" << endl; }
    };
    
    struct Type2 {
    	void stampa() {cout << "Type2" << endl; }
    };
    
    template <typename T> 
    class Test {
    	public:
    		Test(const T& e) : elem(e) {;}  
    		void esegui() { elem.stampa(); }
    	private:
    		T elem;	
    };
    
    ...
    
    		Type1 t1;
    		Test<Type1> prova1(t1);
    		prova1.esegui();
    
    
    		Type2 t2;
    		Test<Type2> prova2(t2);
    		prova2.esegui();
    
    ...
    Type1 e Type2 non derivano da una classe base ma espongono una funzione stampa().
    la classe Test si aspetta che la variabile membro interna abbia una funzione stampa() e non le importa altro. Se provi a istanziare Test con un int avrai un errore di compilazione.
    Però aggiungendo una struct (o classe) Type3 con un metodo stampa(), Test<Type3> sarà valida.
    Si ha quindi un comportamento diverso di Test in base al tipo passato per parametro e alla presenza o meno di un metodo, non sul fatto che il tipo di parametro del template derivi da qualche classe.
    This code and information is provided "as is" without warranty of any kind, either expressed
    or implied, including but not limited to the implied warranties of merchantability and/or
    fitness for a particular purpose.

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.