İleri C++ eğitimi kısım 3 (Type olmayan parametresi)

byanigli

Hectopat
Katılım
3 Ocak 2014
Mesajlar
543
Yer
İzmir, Turkey, Turkey
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.
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++;
}
 
Bu siteyi kullanmak için çerezler gereklidir. Siteyi kullanmaya devam etmek için çerezleri kabul etmelisiniz. Daha Fazlasını Öğren.…