|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Member
Iscritto dal: Jul 2008
Messaggi: 86
|
[C++] Collections
Ciao a tutti,
conosco le Collections di C#, adesso devo utilizzarle in un progetto C++. c'è qualcosa di simile? ho trovato le list ma non mi aiutano molto... In sostanza voglio creare qualcosa di simil al loop di gioco di XNA (per chi lo conosce creo diverse classi tutte derivate dalla stessa, vengono istanziate e memorizzate in una collection e il loop di base richiama automaticamente i metodi principali tipo Initialize() Update() Draw() ecc...) però in C++ ma mi mancano le collections, e in più ho un altro dubbio: se la mia collection è di tipo <GameComponent> e i miei componenti sono derivati da questo tipo sono sicuro che richiama i metodi definiti nelle classi derivate e non solo in quella base? Molto contorto, lo ammetto... Grazie, Zarko.
__________________
XFX 780i - Zotac GTX470 + XFX 8800GTS 512Mb - 2x Patriot Viper 2Gb SLI-Ready - Q9300 @ 3.2GHz - Triton 88 - SuperFlower 700W I computer sono stupidi, se vuoi convivere con loro impara a dirgli cosa fare. |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Apr 2006
Messaggi: 22462
|
i contenitori della stl
__________________
amd a64x2 4400+ sk939;asus a8n-sli; 2x1gb ddr400; x850 crossfire; 2 x western digital abys 320gb|| asus g1
Se striscia fulmina, se svolazza l'ammazza |
|
|
|
|
|
#3 |
|
Member
Iscritto dal: Jul 2008
Messaggi: 86
|
Grazie, ma da quello che ho capito questi contenitori devono avere un solo tipo, io ho bisogno di inserire elementi di tipo diverso ma derivati dalla stessa classe... con le list sono riuscito a memorizzarli ma solo usando la classe base, inserisco oggetti derivati, ma quando richiamo i loro metodi prende quelli della classe base
Altre possibilità?
__________________
XFX 780i - Zotac GTX470 + XFX 8800GTS 512Mb - 2x Patriot Viper 2Gb SLI-Ready - Q9300 @ 3.2GHz - Triton 88 - SuperFlower 700W I computer sono stupidi, se vuoi convivere con loro impara a dirgli cosa fare. |
|
|
|
|
|
#4 | |
|
Senior Member
Iscritto dal: Feb 2006
Messaggi: 1304
|
Quote:
Sicuro che non stai facendo casino con l'inserimento? Prova a fare una collection di puntatori invece che una collection di oggetti! |
|
|
|
|
|
|
#5 |
|
Member
Iscritto dal: Jul 2008
Messaggi: 86
|
Collection di puntatori... tipo così?
Codice:
class HUD : GameComponent
{
//...
};
class Model : GameComponent
{
//...
};
class Game
{
public:
HUD* m_pHUD;
Model* m_pModel
list<GameComponent*> GC; //list con la classe base
Game()
{
GC.push_back(m_pHUD);
GC.push_back(m_pModel);
}
void Initialize()
{
for (list<GameComponent*>::iterator i = GC.begin(); i != GC.end(); i++)
{
//??? Se qui voglio chiamare il metodo Initialize di ogni GameComponent cosa metto?
// Posso riconvertire un GameComponent in HUD, Model...
}
}
};
Zarko.
__________________
XFX 780i - Zotac GTX470 + XFX 8800GTS 512Mb - 2x Patriot Viper 2Gb SLI-Ready - Q9300 @ 3.2GHz - Triton 88 - SuperFlower 700W I computer sono stupidi, se vuoi convivere con loro impara a dirgli cosa fare. |
|
|
|
|
|
#6 | |
|
Senior Member
Iscritto dal: Oct 2005
Messaggi: 3306
|
Quote:
Codice:
for (list<GameComponent*>::iterator i = GC.begin(); i != GC.end(); i++)
{
i->Initialize();
}
|
|
|
|
|
|
|
#7 | |
|
Member
Iscritto dal: Jul 2008
Messaggi: 86
|
FUNZIONA!!!!
Quote:
Codice:
(*i)->Initialize(); Zarko.
__________________
XFX 780i - Zotac GTX470 + XFX 8800GTS 512Mb - 2x Patriot Viper 2Gb SLI-Ready - Q9300 @ 3.2GHz - Triton 88 - SuperFlower 700W I computer sono stupidi, se vuoi convivere con loro impara a dirgli cosa fare. |
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 11:29.




















