Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Salve ragazzi,
Sto cercando di creare un template paragonabile ad una lista generica,
Ma ho un errore quando provo ad inizializzare il costruttore o la lista stessa.
Quello che vorrei fare č avere una lista basata su questa classe
Ho risolto come mi hai suggerito.
Purtroppo sono abiutato a programmare in C#.
Solitamente anche se dichiari un costruttore diverso dalla classe (parametrizzato) funziona ugualmente.
Nel senso che non c'č bisogno di estendere il costrutto vuoto.
Pensavo che la stessa regola valesse per il C++ invece no.
Grazie ancora nessuno.
Riguardo al template, ho provato a dare un'aggiustatina come mi hai consigliato.
Tutto funziona perfettamente.
Codice sorgente - presumibilmente C++
template<class T>class List {
T* values;
private:
int count =0;
int size;
int capacity;
public:
List(): size(0),capacity(10)
{
values =new T[capacity];
}
~List()
{
delete[] values;
}
void Add(T value)
{
if(size == capacity)
{
capacity*=2;
T* new_values =new T[capacity];
for(int i =0; i < size; i++)
{
new_values[i]= values[i];
}
delete[] values;
values = new_values;
}
values[size]= value;
size++;
count++;
}
int Count()const
{
return count;
}
T& operator [](int idx)
{
return values[idx];
}
T& operator ++(int idx)
{
values[idx]++;
}
T& operator --(int idx)
{
values[idx]--;
}
bool Contains(T key)const
{
for(int i =0; i <sizeof(values); i++)
{
if(key == values[i])
returntrue;
}
}
int getSize()const
{
return size;
}
};
Piccola domanda
secondo tuo consiglio, č pių opportuno aggiungere inline ad esempio al getSize o rimanere come sta?
Ultima modifica effettuata da Thejuster il 12/10/2023 alle 18:11