Raga, qualcuno sa consigliarmi qualcosa riguardo ai Template?! Sto cercando ma in giro nn ho trovato nulla. Mi servirebbe qualcosa per capire che sono, come funzionano, a che servono....
Raga, qualcuno sa consigliarmi qualcosa riguardo ai Template?! Sto cercando ma in giro nn ho trovato nulla. Mi servirebbe qualcosa per capire che sono, come funzionano, a che servono....
Non c'è niente in italiano o qualcosa che lo spieghi in maniera semplice e con degli esempi? Scusa se sto chiedendo troppo![]()
Cosa vuoi sapere di preciso?
Come dichiarare un template?
Come gestire un template?
ecc..
Chiedi e vediamo..
Esatto..vorrei vedere un semplice esempio di uso template e capire perché, come e quando usarlo![]()
un template è una classe che al suo interno "contiene" un oggetto non preimpostato ma definito da chi poi creera gli oggetti templetizati.
es:Ecco creata una rudimentale lista di libri che potranno poi essere utilizzati nel seguente modo:codice:template <class K> class libro { K info; libro* next; libro(K pagina) { info=pagina; next=0; } }
Così potrai utilizzare le funzionalità della classe con più tipi di dati anche personalizzati..codice:Main() { libro<int> mioLibro = new Libro<int>(10); libro<string> miaAltroLibro = new Libro<string>("ciao"); cout>>mioLibro.info; cout>>mioAltroLibro.info; }
Altre domande?
grazie, sei stato molto gentile...cercherò di trovare un altro po'di esempi così per farci la mano e capire meglio la sintassi![]()
lavorare coi template non è facile ricordalo.. persò come strumento è molto potente.. preparati a lunghe lotte col compilatore.. :master:![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
Eh me ne sto acconrgendo...purtoppo ho iniziato a lavorare in un'azienda e, prima di mettermi all'opera, mi hanno consigliato di studiare un po'i Template. Quel poco che ho trovato è in inglese e poiché non ci ho capito molto ho chiesto un aiutino a voi![]()
Raga mi date un'occhiata a questo Template? Grazie.
stack.h
codice:
#ifndef _STACK_
#define _STACK_
template<class tipo>
class stack
{
int top;
int size;
tipo* elements;
public:
stack(int n);
~stack() {delete[] elements;}
void push(tipo a);
tipo pop();
};
#endif // _STACK_
stack.cpp
codice:
#include "stack.h"
#include <iostream.h>
template<class tipo>
stack<tipo>::stack(int n)
{
size = n;
elements = new tipo[size];
top = 0;
}
void stack<tipo>:ush(tipo a)
{
if (top < size)
{
elements[top] = a;
top++;
}
}
tipo stack<tipo>:op()
{
if (!top)
return (tipo) 0;
top--;
return elements[top];
}
void display(stack<tipo>& s)
{
tipo a;
while (a = s.pop())
cout << a << endl;
}
main.cpp
codice:
#include "stack.h"
#include <iostream.h>
void main()
{
stack<char> cstack(10);
stack<double> fstack(20);
stack<char*> sstack(5);
cstack.push('a');
cstack.push('b');
cstack.push('c');
display(cstack); // scrive: c b a
fstack.push(1.23);
fstack.push(4.56);
fstack.push(7.89);
display(fstack); // scrive: 7.89 4.56 1.23
sstack.push("uno");
sstack.push("due");
sstack.push("tre");
display(sstack); // scrive: tre due uno
}