Fonksiyon Taslakları (Templates)


Aşırı yüklenmiş fonksiyonlar normalde farklı veri tipleri üzerinde farklı programlama mantığı içeren benzer işlemler yapmakta kullanılır. Eğer her veri tipi için programlama mantığı ve işlemler aynı ise bu, fonksiyon taslakları kullanılarak daha toplu ve daha uygun olarak yapılabilir. Programcı tek bir fonksiyon taslağı yazar. Bu fonksiyona yapılan çağrılarda sağlanan argümanlar verilerek, C++’ın otomatik olarak her bir çağrı tipini tutmak için ayrı taslak fonksiyonlar oluşturulması sağlanır. Dolayısıyla, tek bir taslağı belirlemek tüm bir çözüm kümesini belirler.

Tüm fonksiyon taslağı tanımlamaları template anahtar kelimesiyle başlar ve parantez (< ve >) içinde fonksiyon taslağına resmi tipte parametreler listesiyle devam eder. Her resmi tipte parametre ya typename anahtar kelimesiyle ya da class anahtar kelimesiyle başlar. Resmi tipte parametreler doğal tiplerdir ya da fonksiyona verilen argümanların tipini belirtmek, fonksiyonun geri dönüş tipini belirtmek ve fonksiyon gövdesi içinde değişken bildirimi yapmak için kullanılan kullanıcı tarafından sağlanmış tiplerdir.

Aşağıdaki fonksiyon taslak tanımlaması, sonradan vereceğim Resim 1’de de kullanılmıştır. (9 ve 21. satirlar arasinda)

*******************************

*******************************

Bu fonksiyon taslağı, maksimum fonksiyonu tarafından test edilecek verinin tipi olarak tek bir resmi tipte parametre (A) bildirmektedir. Derleyici, programın kaynak kodunda maksimum çağrısı tespit edildiği zaman, tüm taslak tanımlaması boyunca geçirilen veri tipini A yerine koyar ve C++ belirtilen veri tipindeki üç değerin maksimumunu belirleten fonksiyonu oluşturur. Sonra, yeni oluşturulan fonksiyon derlenir. Dolayısıyla, taslaklar kod oluşumunun özüdür. Resim1’de üç fonksiyon oluşturulmuştur: Bu fonksiyonların birisi üç int değer, birisi üç double değer ve diğeri üç char değer almaktadır. int için oluşturulan fonksiyon taslağı aşağıdaki gibidir:

*******************************

*******************************

Tip parametresinin, özel bir taslak tanımlamasının resmi parametre listesindeki adı tek olmalıdır. Resim1, maksimum taslak fonksiyonunun üç int değerinden, üç double değerinden ve üç char değerinden en büyük olanını belirlemekte kullanımını göstermektedir.

*******************************

Resim1 yani kodlarımız:


*******************************

Ve kodlarımızın çıktısı:

*******************************

Küçük bir not: Bir fonksiyon taslağının her tür parametresinin önüne class veya typename anahtar kelimesinin yerleştirilmemesi yazım hatasıdır.

Bir Cevap Yazın

Aşağıya bilgilerinizi girin veya oturum açmak için bir simgeye tıklayın:

WordPress.com Logosu

WordPress.com hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Twitter resmi

Twitter hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Facebook fotoğrafı

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Google+ fotoğrafı

Google+ hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Connecting to %s