byanigli
Hectopat
Daha fazla
- Cinsiyet
- Erkek
- Meslek
- student of software engineering
Diğer iki konuda, typename olan template'lerden bahsetmiştik. Bu konuda türü olmayan template'leri tartışacağız. Hem class hemde fonksiyon templatelerinde sıradan bir değişken kullanabiliriz (int, double, vs...)
Bu mekanizmayı, nerde kullanabiliriz. örneğin stak'in eleman sayısı 150 geçmesini istemiyoruz. bu tür kullanımlarda işimize yaramaktadır. Yani bize sağladığı en iyi avantaj, memory allocation'dır. Bir kötü yanı ise, en iyi eleman boyutunu bulmak zor olabilir.
Diğer bir avantajı ise stack veri eklerken dolu, olup olmadığını kontrol edebiliriz.
Bu mekanizmayı, nerde kullanabiliriz. örneğin stak'in eleman sayısı 150 geçmesini istemiyoruz. bu tür kullanımlarda işimize yaramaktadır. Yani bize sağladığı en iyi avantaj, memory allocation'dır. Bir kötü yanı ise, en iyi eleman boyutunu bulmak zor olabilir.
Kod:
template <typename T, int Maxsize>
class stack {
private:
T elems [Maxsize];
};
Diğer bir avantajı ise stack veri eklerken dolu, olup olmadığını kontrol edebiliriz.
Kod:
template <typename T, int Maxsize>
void Stack<T,Maxsize>:: push(T const& elem)
{
if(numElems == Maxsize)
{
throw "Stack is full"
}
elems[numElem] = elem;
numElem++;
}