İ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++;
}
 
Uyarı! Bu konu 10 yıl önce açıldı.
Muhtemelen daha fazla tartışma gerekli değildir ki bu durumda yeni bir konu başlatmayı öneririz. Eğer yine de cevabınızın gerekli olduğunu düşünüyorsanız buna rağmen cevap verebilirsiniz.

Technopat Haberler

Geri
Yukarı