|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
|
Il topic della frustrazione
Codice:
virtual bool IsCloth() const { return false; }
Dovrebbero istituire la patente per il programmatore e non darla a tutti soprattutto nella game industry...
__________________
"We in the game industry are lucky enough to be able to create our visions" @ NVIDIA |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Nov 2005
Messaggi: 1545
|
|
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: May 2002
Città: Milan
Messaggi: 572
|
chi è il pazzo che l'ha scritto ? :|
__________________
.:. NEONISI .:. a new island for online auctions. It's worldwide, safe, simple and free. Join Us! Ultima modifica di cover : 27-04-2006 alle 22:25. |
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
|
__________________
"We in the game industry are lucky enough to be able to create our visions" @ NVIDIA |
|
|
|
|
|
#5 | |
|
Senior Member
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
|
Quote:
|
|
|
|
|
|
|
#6 |
|
Senior Member
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
|
E la frustrazione continua:
Codice:
virtual void SetScene(CScene *scene) {m_Scene = scene;}
__________________
"We in the game industry are lucky enough to be able to create our visions" @ NVIDIA |
|
|
|
|
|
#7 |
|
Senior Member
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
|
Ma allora non era una svista, e' proprio recidivo:
Codice:
virtual EMaterialType GetType() const { return MATERIAL_TYPE_DEFAULT_MATERIAL; }
__________________
"We in the game industry are lucky enough to be able to create our visions" @ NVIDIA |
|
|
|
|
|
#8 |
|
Senior Member
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
|
Prima della cura:
Codice:
Material* p_material = NULL;
if (src_material.GetType()==A_MATERIAL_TYPE)
{
const MyMaterial& my_material = (MyMaterial*) (src_material);
p_material = new MyMaterial(my_material);
}
else
{
// error
}
material_array[c_mat] = p_material;
Codice:
material_array[c_mat] = src_material.Clone();
__________________
"We in the game industry are lucky enough to be able to create our visions" @ NVIDIA |
|
|
|
|
|
#9 |
|
Senior Member
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
|
Usare un metodo GetType con la programmazione a oggetti è una vera e propria bestemmia: tanto vale rimanere alla programmazione strutturata e alle catene di switch/case.
Ultima modifica di cdimauro : 02-05-2006 alle 10:17. Motivo: Tolto di mezzo il nome del gioco. ;) |
|
|
|
|
|
#10 | |
|
Senior Member
Iscritto dal: Nov 2005
Città: Bologna
Messaggi: 1303
|
Quote:
Se si vuole andare ad introdurre un isistema a PLUG-IN addirittura hot-deployable....bhè, senza Refelction e GetType nn si fa molto |
|
|
|
|
|
|
#11 |
|
Senior Member
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
|
Non mi sono occupato come si deve delle problematiche alla creazione e all'uso di applicazioni che usano plug-in (da diversi anni ho in mente un progetto, ma non ho mai avuto il tempo per realizzarlo.
|
|
|
|
|
|
#12 | |
|
Senior Member
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
|
Quote:
Anche in caso di necessita' di persistenza degli oggetti, ci sono validissime alternative, quali creare delle metaclassi che contengono le informazioni, e magari i factory method per la creazione e clonazione degli oggetti. Ma un GetType cosi' per selezionare il comportamento in base al tipo dell'oggetto e messo pure virtuale non ha alcun senso logico: il polimorfismo nasce proprio per non aver bisogno di quel metodo.
__________________
"We in the game industry are lucky enough to be able to create our visions" @ NVIDIA |
|
|
|
|
|
|
#13 |
|
Senior Member
Iscritto dal: Jul 2002
Città: Reggio Calabria -> London
Messaggi: 12112
|
chi mi ricorda a che servono i metodi virtuali???
__________________
|
|
|
|
|
|
#14 |
|
Senior Member
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
|
Codice:
class animale
virtual verso()
movimento()
print 'movimento base!'
class gatto(animale)
virtual verso()
print 'miao!'
movimento()
print 'movimento felino!'
class cane(animale)
virtual verso()
print 'bau!'
class pitbull(cane)
virtual verso()
print 'MEGA BAU!!!'
var
a: animale
b: gatto
a = new gatto()
a.verso() # -> 'miao!'
a.movimento() # -> 'movimento base!'
b = gatto(a)
b.movimento() # -> 'movimento felino!'
a = new cane()
a.verso() # -> 'bau!'
a.movimento() # -> 'movimento base!'
a = new pitbull(cane)
a.verso() # -> 'MEGA BAU!!!'
a.movimento() # -> 'movimento base!'
|
|
|
|
|
|
#15 |
|
Senior Member
Iscritto dal: Jul 2002
Città: Reggio Calabria -> London
Messaggi: 12112
|
ok... ricordavo che c'entravano con le classi astratte....
ma in java ci sono pure? non me li ricordo proprio....
__________________
|
|
|
|
|
|
#16 | |
|
Senior Member
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
|
Quote:
__________________
"We in the game industry are lucky enough to be able to create our visions" @ NVIDIA |
|
|
|
|
|
|
#17 | |
|
Senior Member
Iscritto dal: Jul 2002
Città: Reggio Calabria -> London
Messaggi: 12112
|
Quote:
xkè non me la ricordo proprio in java
__________________
|
|
|
|
|
|
|
#18 | |
|
Senior Member
Iscritto dal: Nov 2005
Città: Bologna
Messaggi: 1303
|
Quote:
Io ho una applicazione che utilizza degli oggetti. L'utente li vede divsi per categoria. Ora supponiamo che io voglio fare in modo che sia possibile aggiungere nuove categorie o nuovi tipi di oggetti senza dover ricompilare l'applicazione o dovendo modificare delle libreire e addirittura senza toccaremanco un file di configurazione. Io faccio i nuovi oggetti rispettando le interfaccie dovute o estendendo una classe base. A quelpunto rilascio una DLL o un JAR. L'applicazione può leggerseli all'avvio, o addirittura mentre è già in esecuzione e dandare a cercare le calsssi che implementino quell'interfaccia o che estendano la calsse base (Uso di getType() ), istanzio se c'è nè bisogno, lo casto senza problemi avendo controllato il tipo e poi lo uso. BAZZA Addirittura se non tutti gli oggetti hanno il metodo pincopallo che serve solo se l'oggetto vuole fare certe cose, io senza sapere nulla posso attraverso la Refelction capire se ha quel metodo e invocarlo. In realtà io vedo in GetType un'arma a doppio taglio....se non si usano correttamente i paradigmi dell'OO come polimorfismo ma si caratterizano i comportamenti con getType() si è dei pazzi. Ma se invece si usa per andare a lavorare OO addirittura su oggetti che non si conoscono...bhè...direi che è una ottima estensione dell'OO Scusate se sono stato lungo |
|
|
|
|
|
|
#19 |
|
Senior Member
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
|
Stai parlando dei pattern Composite Interfaces e Plugin e del concetto di GUID che e' profondamente diverso dal GetType()
In pratica stai parlando di COM. E sai che cosa hanno fatto per risolvere i suoi (enormi) problemi? Hanno tolto le GUID ed hanno scritto una macchina virtuale, il CLR, ed hanno creato .NET pur di togliere quella cosa che e' tanto simile al GetType().
__________________
"We in the game industry are lucky enough to be able to create our visions" @ NVIDIA |
|
|
|
|
|
#20 | |
|
Senior Member
Iscritto dal: Nov 2005
Città: Bologna
Messaggi: 1303
|
Quote:
In ogni caso mi chiedo allora a cosa serva veramente la refelction e il metodo GetType() ?? Per chè lo hanno inventato e realizzato se in realtà non serve a nulla?? In .NET c'è il getType() e fa fare tante belle cosine...come ad esempio ho utilizzato la Refelction, anche per esercitazione, per creare da un file XML una fnestra e i suoi control. Insomma un XAML formato embrione... In ogni caso ....insisti Fek...fammi capire che sono una testa dura Imparo Imapro Imparo
|
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 14:31.



















