Salve a tutti!
in C++ (e non solo) esistono le "template class" cioé la possibilità di istruire il precompilatore in modo che generi alcune classi in compile-time.
Ad esempio, supponendo di aver bisogno di una classe stack (quindi con push, pop ecc ecc...) per numeri interi, dovremmo dichiararla e definirla... e se poi avessimo bisogno di una classe stack per numeri in virgola mobile dovremmo definire anche quella; idem con patate per uno stack di caratteri, puntatori, stringhe o qualsiasi altra classe valida di cui vogliamo "impilare" alcune istanze.
Il c++ ci viene incontro con i template... possiamo fare una cosa del genere:
e poi possiamo fare così per "generare" classi Stack<Tipo_a_Scelta> in fase di precompilazione (il precompilatore penserà a tutto):codice:// Questa classe é solo abbozzata, ma serve a far capire di cosa sto parlando. template <class Type> class Stack { private: Type *stack; int top; const int maxSize; public: void Push(Type &val); void Pop(void); Type& Top(void); }; /* Qui dovremmo definire i metodi dichiarati, ma omettiamo per brevità */
Si può fare la stessa cosa in PHP? Quale é il modo più "pulito"? Sono completamente fuori strada?codice:Stack<int> mioStackdiInteri(); Stack<double> mioStackdiDouble(); Stack<miaClasse> mioStackdiMiaClasse(); mioStackdiInteri.Push(2); int i = mioStackdiInteri.Pop(); ecc ecc...
scusate se ho riportato del codice in C++, ma cercando la parola "template" abbinata a PHP escono una marea di cose che con le template class di cui parlo non hanno niente a che fare.
Grazie in anticipo!
PS:
so che in php il problema della classe stack non si pone, perché é facile in vari modi ottenere una classe che impili oggetti indipendentemente dal tipo... la mia situazione é un po piu intricata e il mio vero problema non é uno stack...

Rispondi quotando
