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.
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.
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.
A partire dalla versione 5, Java supporta anche il primo, con l'introduzione dei Generics...Originariamente inviato da shodan
Il C++ implementa il polimorfismo parametrico e dinamico. Java solo l'ultimo.
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
Sul polimorfismo parametrico ho trovato pareche cose ma su quello dinamico nulla.
Sai darmi qualche fonte ?
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.
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
grazie mille scusa sono sbadato oggi!
Buono a sapersi.Originariamente inviato da LeleFT
A partire dalla versione 5, Java supporta anche il primo, con l'introduzione dei Generics...
@wino_7
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.Sul polimorfismo parametrico ho trovato pareche cose ma su quello dinamico nulla.
Sai darmi qualche fonte ?
@asafa
Da un'occhiata al link della mia prima risposta, se non l'hai fatto.esistono piu' forme di polimorfismo ?
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.
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
Meglio chiarire le cose allora.Originariamente inviato da asafa
pero come dici tu dividento in paramentro e dinamico mi sono incasinato....
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:
Type1 e Type2 non derivano da una classe base ma espongono una funzione stampa().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(); ...
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.