Oppure

Loading
13/03/19 15:49
Thejuster
Buonasera a tutti.

Sto sperimentando i template ma è un argomento al quanto vedo molto vasto
e complicato.

il mio primo esperimento era quello di simulare una lista come accade in .net
sò che può essere sbagliato come approccio.
anche perché esiste già la lista.
ma volevo provare ad imitarne il funzionamento.

ho fatto


template <class T>
class List {
T values [1000];
private:
    int count = 0;
  public:

    void Add(T value)
    {
        values[count] = value;
        count++;
    }
    int Count()
    {
        return count;
    }
};




per instanziarla ovviamente faccio

List<int> lista;


Insiersco elementi tipo


lista.Add(10); 
lista.Add(20);
lista.Add(30);



facendo


count << lista.Count();



Mi riporta ovviamente il numero di elementi inseriti nella lista.


ora mi domando, per recuperare i valori da quell'array?
come faccio?

cioè non sò come dichiarare un metodo che mi vada a recuperare i valori in [ID]

tipo dovrei farei


cout << interi[1];



suggerimenti?


mire.forumfree.it/ - Mire Engine
C# UI Designer
13/03/19 16:48
Devi fare l'overloading dell'operatore []

È una questione che non riguarda direttamente i template ma le classi c++
13/03/19 20:46
Thejuster
si grazie nessuno,
infatti ho risolto con


T& operator []


mire.forumfree.it/ - Mire Engine
C# UI Designer
13/03/19 23:24
TheDarkJuster
Io invece muovo una critica: list non è un buon nome per quella classe. Il subscript oprator in c++ di mette a disposizione per accedere in tempo costante agli elementi, e il nome lista da tutta un'altra idea di ciò che la classe gestisce. Trovo la tua classe molto più simile ad un std::array che ad un std::list, std::array richiede due parametri: tipo e dimensione, nel tuo caso la dimensione è fissa, ma ti consiglio di renderla templetizzata
aaa
14/03/19 11:43
Thejuster
grazie juster, le critiche le accetto volentieri anche perché
mi permettono di vedere i miei errori.

grazie a tutti per il supporto
mire.forumfree.it/ - Mire Engine
C# UI Designer