SlideShare a Scribd company logo
KBUZEM
Karabük Üniversitesi
Uzaktan Eğitim Araştırma ve Uygulama Merkezi
9. HAFTA
NESNEYE DAYALI PROGRAMLAMA
BLM225
Nesneye Dayalı Programlama
2
9. Şablonlar (Templates)
Şablonlar yazılımları tekrar kullanabilmenin bir yöntemidir. Bu sayede tek bir kod yazarak
farklı tiplerde değer alan fonksiyonlar sınıflar tanımlayabiliriz. Gövdeleri aynı olan
fonksiyonları şablon olarak tanımlayabiliriz. Şablon kullanmanın iki önemli avantajı vardır.
1. Program kodunu kısaltır. Birden fazla fonksiyon yazacağımıza tek bir fonksiyon
yazarız.
2. Hata düzeltmeyi kolaylaştırır. Eğer kod yazarken hata yapılmışsa tek bir yede
düzeltmek yeterli olacaktır.
Aşağıda verilen programda GetMax fonksiyonu aşırı yüklenmiştir. Bu fonksiyon ilkinde int
türünden sayıları parametre olarak olmakta ve büyüğünü geri döndürmektedir. İkincisinde ise
float türünden sayıları parametre olarak almaktadır. Kod kısmı ise aynıdır.
#include <iostream>
#include <conio.h>
using namespace std;
int GetMax (int a, int b) {
int result;
result = (a>b)? a : b;
return (result);
}
float GetMax (float a, float b) {
float result;
result = (a>b)? a*3 : b+10;
return (result);
}
int main ()
{
int i=5, j=6;
float l=10.6, m=5.1;
cout << GetMax(i,j)<< endl;
cout << GetMax(l,m)<< endl;
return 0;
}
Yukarda verilen iki fonksiyon yerine tek bir fonksiyon yazılabilir. Bunun için Fonksiyon
şablon olarak tanımlanmalıdır. Aşağıda bunun örneği görülmektedir.
Karabük Üniversitesi Uzaktan Eğitim Araştırma ve Uygulama Merkezi
Mühendislik Fakültesi No: 215 Balıklarkayası Mevkii 78050 Karabük TÜRKİYE
2
BLM225
Nesneye Dayalı Programlama
3
template <class T>
T GetMax (T a, T b) {
Yukarda verilen satırda a ve b int, float veya başka bir türden olabilir. Ne verilirse ona göre
program derlenerek çalıştırılacaktır. Örneğin aşağıdaki satırda i ve j değişkenleri <int> ifadesi
ile tamsayı olacağı belirtilmiştir.
k=GetMax<int>(i,j);
Eğer i ve j değişkenleri int i,j; şeklinde önceden int türünden oldukları belirtilmişse <int>
ifadesini koymaya gerek yoktur. Bu taktirde
int i,j;
k=GetMax(i,j);
Şeklinde de çağrılabilir.
Aşağıda verilen örnekleri inceleyiniz.
//------------------------------
#include <iostream>
#include <conio.h>
using namespace std;
template <class S>
S GetMax (S a, S b) {
S result;
result = (a>b)? a : b;
return (result);
}
int main ()
{
int i=5, j=6, k;
float l=10.6, m=5.7, n;
char x='p' , y='r', c;
cout <<GetMax<int>(i,j)<< endl;
cout <<GetMax<float>(l,m)<< endl;
cout<<GetMax<char>(x,y)<<endl;
getch();
return 0;
}
//----------------------------------------------
Karabük Üniversitesi Uzaktan Eğitim Araştırma ve Uygulama Merkezi
Mühendislik Fakültesi No: 215 Balıklarkayası Mevkii 78050 Karabük TÜRKİYE
3
BLM225
Nesneye Dayalı Programlama
4
#include <iostream>
#include <conio.h>
using namespace std;
template <class T, class U>
T Alan (T a, U b) {
return a*b;
}
int main ()
{
double y=1.5;
int x=3;
cout << Alan(y,x)<< endl;
cout << Alan(x,y)<< endl;
getch();
return 0;
}
Karabük Üniversitesi Uzaktan Eğitim Araştırma ve Uygulama Merkezi
Mühendislik Fakültesi No: 215 Balıklarkayası Mevkii 78050 Karabük TÜRKİYE
4
BLM225
Nesneye Dayalı Programlama
5
//--------------------------------------
#include <iostream>
using namespace std;
template <class T>
T GetMax (T a, T b) {
T result;
result = (a>b)? a : b;
return (result);
}
int main ()
{
int i=5, j=6, k;
float l=10.6, m=5.7, n;
k=GetMax(i,j);
n=GetMax(l,m);
cout << k << endl;
cout << n << endl;
return 0;
}
Karabük Üniversitesi Uzaktan Eğitim Araştırma ve Uygulama Merkezi
Mühendislik Fakültesi No: 215 Balıklarkayası Mevkii 78050 Karabük TÜRKİYE
5
BLM225
Nesneye Dayalı Programlama
6
Sınıflarda template kullanımı. Aşağıda verilen örneği inceleyiniz.
#include <iostream>
#include <conio.h>
using namespace std;
template <class T>
class Dortgen {
T x, y;
public:
void Dortgen<T>::DegerVer(T a, T b)
{
x = a;
y = b;
}
T Dortgen<T>::Alan (void)
{
return x*y;
}
};
int main ()
{
Dortgen <int>D1 ;
Dortgen <float>D2;
D1.DegerVer(3,4);
D2.DegerVer(2.5,2.5);
cout << "Alan1:" << D1.Alan()<<'n';
cout << "Alan2: " << D2.Alan()<<endl;
getch();
return 0;
}
Karabük Üniversitesi Uzaktan Eğitim Araştırma ve Uygulama Merkezi
Mühendislik Fakültesi No: 215 Balıklarkayası Mevkii 78050 Karabük TÜRKİYE
6
BLM225
Nesneye Dayalı Programlama
7
#include <iostream>
#include <conio.h>
using namespace std;
template <class T, class U>
class Dortgen {
T x;
U y;
public:
void DegerVer(T,U);
U Alan (void);
};
template <class T, class U>
void Dortgen<T,U>::DegerVer(T a, U b) {
x = a;
y = b;
}
template <class T, class U>
U Dortgen<T,U>::Alan (void) {
return x*y;
}
int main ()
{
Dortgen <int,float>D1;
Dortgen <int,float>D2;
D1.DegerVer(4,3.1);
D2.DegerVer(7.4,2.5);
cout << "Alan1: " << D1.Alan()<<'n';
cout << "Alan2: " << D2.Alan()<<endl;
return 0;
}
#include <iostream>
#include <conio.h>
using namespace std;
template <class T, class U>
class Dortgen {
T x;
U y;
Karabük Üniversitesi Uzaktan Eğitim Araştırma ve Uygulama Merkezi
Mühendislik Fakültesi No: 215 Balıklarkayası Mevkii 78050 Karabük TÜRKİYE
7
BLM225
Nesneye Dayalı Programlama
8
public:
void Dortgen<T,U>::DegerVer(T a, U b)
{ x = a; y = b; }
U Dortgen<T,U>::Alan (void) { return
x*y; }
};
int main ()
{
Dortgen <float,int>d1;
Dortgen <int,float>d2;
d1.DegerVer(4.5,3.6);
d2.DegerVer(4.5,3.6);
cout << "Alan1: " << d1.Alan()<<'n';
cout << "Alan2: " << d2.Alan()<<endl;
return 0;
}
#include <iostream>
#include <conio.h>
using namespace std;
template <class T,class U>
class Dortgen {
T x;
U y;
public:
void Dortgen<T,U>::DegerVer(T a, U b)
{
x = a;
y = b;
}
T Dortgen<T,U>::Alan (void)
{
return x*y;
}
};
int main ()
{
Dortgen <float,int>D1 ;
Karabük Üniversitesi Uzaktan Eğitim Araştırma ve Uygulama Merkezi
Mühendislik Fakültesi No: 215 Balıklarkayası Mevkii 78050 Karabük TÜRKİYE
8
BLM225
Nesneye Dayalı Programlama
9
Dortgen <int,float>D2;
D1.DegerVer(3.5,4.5);
D2.DegerVer(2.5,2.5);
cout << "Alan1:" << D1.Alan()<<'n';
cout << "Alan2: " << D2.Alan()<<endl;
getch();
return 0;
}
Karabük Üniversitesi Uzaktan Eğitim Araştırma ve Uygulama Merkezi
Mühendislik Fakültesi No: 215 Balıklarkayası Mevkii 78050 Karabük TÜRKİYE
9
BLM225
Nesneye Dayalı Programlama
9
Dortgen <int,float>D2;
D1.DegerVer(3.5,4.5);
D2.DegerVer(2.5,2.5);
cout << "Alan1:" << D1.Alan()<<'n';
cout << "Alan2: " << D2.Alan()<<endl;
getch();
return 0;
}
Karabük Üniversitesi Uzaktan Eğitim Araştırma ve Uygulama Merkezi
Mühendislik Fakültesi No: 215 Balıklarkayası Mevkii 78050 Karabük TÜRKİYE
9

More Related Content

What's hot

4. nesneler ve sınıflar
4. nesneler ve sınıflar4. nesneler ve sınıflar
4. nesneler ve sınıflar
karmuhtam
 
6. this işaretçisi ve arkadaşlık
6. this işaretçisi ve arkadaşlık6. this işaretçisi ve arkadaşlık
6. this işaretçisi ve arkadaşlık
karmuhtam
 
7. kalıtım
7. kalıtım7. kalıtım
7. kalıtım
karmuhtam
 
1. nesneye dayalı programlama giriş
1. nesneye dayalı programlama   giriş1. nesneye dayalı programlama   giriş
1. nesneye dayalı programlama giriş
karmuhtam
 
C#, Microsoft Yaz Okulu 2011 - İzmir
C#, Microsoft Yaz Okulu 2011 - İzmirC#, Microsoft Yaz Okulu 2011 - İzmir
C#, Microsoft Yaz Okulu 2011 - İzmir
Enterprisecoding
 
Introduction to iOS Programming && About XMPPFramework
Introduction to iOS Programming && About XMPPFrameworkIntroduction to iOS Programming && About XMPPFramework
Introduction to iOS Programming && About XMPPFramework
Anıl Sözeri
 
Kod Akış Kontrolü - Döngüler, Fonksiyonlar
Kod Akış Kontrolü - Döngüler, FonksiyonlarKod Akış Kontrolü - Döngüler, Fonksiyonlar
Kod Akış Kontrolü - Döngüler, Fonksiyonlar
cmkandemir
 
Ileri seviye javascript by Azer Koculu
Ileri seviye javascript by Azer KoculuIleri seviye javascript by Azer Koculu
Ileri seviye javascript by Azer Koculu
mustafa sarac
 
C programlama
C programlamaC programlama
C programlama
Turgay Erbay
 
PHP Temelleri
PHP TemelleriPHP Temelleri
PHP Temelleri
cmkandemir
 
Java ile grogramlamaya giris
Java ile grogramlamaya girisJava ile grogramlamaya giris
Java ile grogramlamaya giris
rudiacikgoz
 

What's hot (12)

4. nesneler ve sınıflar
4. nesneler ve sınıflar4. nesneler ve sınıflar
4. nesneler ve sınıflar
 
6. this işaretçisi ve arkadaşlık
6. this işaretçisi ve arkadaşlık6. this işaretçisi ve arkadaşlık
6. this işaretçisi ve arkadaşlık
 
7. kalıtım
7. kalıtım7. kalıtım
7. kalıtım
 
1. nesneye dayalı programlama giriş
1. nesneye dayalı programlama   giriş1. nesneye dayalı programlama   giriş
1. nesneye dayalı programlama giriş
 
C#, Microsoft Yaz Okulu 2011 - İzmir
C#, Microsoft Yaz Okulu 2011 - İzmirC#, Microsoft Yaz Okulu 2011 - İzmir
C#, Microsoft Yaz Okulu 2011 - İzmir
 
Introduction to iOS Programming && About XMPPFramework
Introduction to iOS Programming && About XMPPFrameworkIntroduction to iOS Programming && About XMPPFramework
Introduction to iOS Programming && About XMPPFramework
 
Kod Akış Kontrolü - Döngüler, Fonksiyonlar
Kod Akış Kontrolü - Döngüler, FonksiyonlarKod Akış Kontrolü - Döngüler, Fonksiyonlar
Kod Akış Kontrolü - Döngüler, Fonksiyonlar
 
Ileri seviye javascript by Azer Koculu
Ileri seviye javascript by Azer KoculuIleri seviye javascript by Azer Koculu
Ileri seviye javascript by Azer Koculu
 
C programlama
C programlamaC programlama
C programlama
 
PHP Temelleri
PHP TemelleriPHP Temelleri
PHP Temelleri
 
Java ile grogramlamaya giris
Java ile grogramlamaya girisJava ile grogramlamaya giris
Java ile grogramlamaya giris
 
Ready to Rock
Ready to RockReady to Rock
Ready to Rock
 

Similar to 9. şablonlar

Delphi ileri seviye programlama bölmü 3
Delphi ileri seviye programlama bölmü 3 Delphi ileri seviye programlama bölmü 3
Delphi ileri seviye programlama bölmü 3 wqphnrdo
 
C yapilar
C yapilarC yapilar
C yapilar
Türkü Dinle
 
başlıkk 11111
başlıkk 11111başlıkk 11111
başlıkk 11111
ahmettuna343
 
Javascript Performance Optimisation
Javascript Performance OptimisationJavascript Performance Optimisation
Javascript Performance Optimisation
irfandurmus
 
progressokulu.com Advanced Business Language Slide 4
progressokulu.com Advanced Business Language Slide 4progressokulu.com Advanced Business Language Slide 4
progressokulu.com Advanced Business Language Slide 4
kaan verdioglu
 
Cok boyutlu-diziler
Cok boyutlu-dizilerCok boyutlu-diziler
Cok boyutlu-diziler
Türkü Dinle
 
Kaya Gibi Sağlam Yazılım Projelerine İmza Atmanın 5 Prensibi
Kaya Gibi Sağlam Yazılım Projelerine İmza Atmanın 5 PrensibiKaya Gibi Sağlam Yazılım Projelerine İmza Atmanın 5 Prensibi
Kaya Gibi Sağlam Yazılım Projelerine İmza Atmanın 5 Prensibi
ibrahimgunduz34
 
İleri Seviye T-SQL Programlama - Chapter 09
İleri Seviye T-SQL Programlama - Chapter 09İleri Seviye T-SQL Programlama - Chapter 09
İleri Seviye T-SQL Programlama - Chapter 09
Cihan Özhan
 
Pig ve Hive ile Hadoop üzerinde Veri Analizi
Pig ve Hive ile Hadoop üzerinde Veri AnaliziPig ve Hive ile Hadoop üzerinde Veri Analizi
Pig ve Hive ile Hadoop üzerinde Veri Analizi
Hakan Ilter
 
Introduction to Android Programming
Introduction to Android ProgrammingIntroduction to Android Programming
Introduction to Android Programming
Anıl Sözeri
 
Extjs 4 education
Extjs 4 educationExtjs 4 education
Extjs 4 education
M Sinan Şahin
 
Emrah METE - Oracle Cloud Day 2015 12c SQL New Features
Emrah METE - Oracle Cloud Day 2015 12c SQL New Features Emrah METE - Oracle Cloud Day 2015 12c SQL New Features
Emrah METE - Oracle Cloud Day 2015 12c SQL New Features
Emrah METE
 
PostgreSQL Hem Güçlü Hem Güzel!
PostgreSQL Hem Güçlü Hem Güzel!PostgreSQL Hem Güçlü Hem Güzel!
PostgreSQL Hem Güçlü Hem Güzel!
Gulcin Yildirim Jelinek
 
Net ve i̇stisnalar
Net ve i̇stisnalarNet ve i̇stisnalar
Net ve i̇stisnalar
Barış Engin
 

Similar to 9. şablonlar (20)

Templates
Templates Templates
Templates
 
Delphi ileri seviye programlama bölmü 3
Delphi ileri seviye programlama bölmü 3 Delphi ileri seviye programlama bölmü 3
Delphi ileri seviye programlama bölmü 3
 
C yapilar
C yapilarC yapilar
C yapilar
 
Sunu algo04
Sunu algo04Sunu algo04
Sunu algo04
 
Sunu algo05
Sunu algo05Sunu algo05
Sunu algo05
 
başlıkk 11111
başlıkk 11111başlıkk 11111
başlıkk 11111
 
Javascript Performance Optimisation
Javascript Performance OptimisationJavascript Performance Optimisation
Javascript Performance Optimisation
 
progressokulu.com Advanced Business Language Slide 4
progressokulu.com Advanced Business Language Slide 4progressokulu.com Advanced Business Language Slide 4
progressokulu.com Advanced Business Language Slide 4
 
Cok boyutlu-diziler
Cok boyutlu-dizilerCok boyutlu-diziler
Cok boyutlu-diziler
 
Kaya Gibi Sağlam Yazılım Projelerine İmza Atmanın 5 Prensibi
Kaya Gibi Sağlam Yazılım Projelerine İmza Atmanın 5 PrensibiKaya Gibi Sağlam Yazılım Projelerine İmza Atmanın 5 Prensibi
Kaya Gibi Sağlam Yazılım Projelerine İmza Atmanın 5 Prensibi
 
Java script
Java scriptJava script
Java script
 
Php1
Php1Php1
Php1
 
Java EE Struts
Java EE StrutsJava EE Struts
Java EE Struts
 
İleri Seviye T-SQL Programlama - Chapter 09
İleri Seviye T-SQL Programlama - Chapter 09İleri Seviye T-SQL Programlama - Chapter 09
İleri Seviye T-SQL Programlama - Chapter 09
 
Pig ve Hive ile Hadoop üzerinde Veri Analizi
Pig ve Hive ile Hadoop üzerinde Veri AnaliziPig ve Hive ile Hadoop üzerinde Veri Analizi
Pig ve Hive ile Hadoop üzerinde Veri Analizi
 
Introduction to Android Programming
Introduction to Android ProgrammingIntroduction to Android Programming
Introduction to Android Programming
 
Extjs 4 education
Extjs 4 educationExtjs 4 education
Extjs 4 education
 
Emrah METE - Oracle Cloud Day 2015 12c SQL New Features
Emrah METE - Oracle Cloud Day 2015 12c SQL New Features Emrah METE - Oracle Cloud Day 2015 12c SQL New Features
Emrah METE - Oracle Cloud Day 2015 12c SQL New Features
 
PostgreSQL Hem Güçlü Hem Güzel!
PostgreSQL Hem Güçlü Hem Güzel!PostgreSQL Hem Güçlü Hem Güzel!
PostgreSQL Hem Güçlü Hem Güzel!
 
Net ve i̇stisnalar
Net ve i̇stisnalarNet ve i̇stisnalar
Net ve i̇stisnalar
 

More from karmuhtam

Devre analizi deney malzeme listesi
Devre analizi deney malzeme listesiDevre analizi deney malzeme listesi
Devre analizi deney malzeme listesi
karmuhtam
 
Deney 6
Deney 6Deney 6
Deney 6
karmuhtam
 
Deney 5
Deney 5Deney 5
Deney 5
karmuhtam
 
Deney 3 ve 4
Deney 3 ve 4Deney 3 ve 4
Deney 3 ve 4
karmuhtam
 
Deney 1 ve 2
Deney 1 ve 2Deney 1 ve 2
Deney 1 ve 2
karmuhtam
 
Data structure week y 5 1
Data structure week y 5 1Data structure week y 5 1
Data structure week y 5 1
karmuhtam
 
Data structure week y 5
Data structure week y 5Data structure week y 5
Data structure week y 5
karmuhtam
 
Data structure week y 4
Data structure week y 4Data structure week y 4
Data structure week y 4
karmuhtam
 
Data structure week 3
Data structure week 3Data structure week 3
Data structure week 3
karmuhtam
 
Data structure week 2
Data structure week 2Data structure week 2
Data structure week 2
karmuhtam
 
Data structure week 1
Data structure week 1Data structure week 1
Data structure week 1
karmuhtam
 
12. stl örnekler
12.  stl örnekler12.  stl örnekler
12. stl örnekler
karmuhtam
 
Devre analizi defter
Devre analizi defterDevre analizi defter
Devre analizi defter
karmuhtam
 
H12 blm221
H12 blm221H12 blm221
H12 blm221
karmuhtam
 
H11 blm221
H11 blm221H11 blm221
H11 blm221
karmuhtam
 
H9 blm221
H9 blm221H9 blm221
H9 blm221
karmuhtam
 
H8 blm221 multiplexer-decoder-bellekler
H8 blm221 multiplexer-decoder-belleklerH8 blm221 multiplexer-decoder-bellekler
H8 blm221 multiplexer-decoder-bellekler
karmuhtam
 
H8 blm221 (1)
H8 blm221 (1)H8 blm221 (1)
H8 blm221 (1)
karmuhtam
 

More from karmuhtam (18)

Devre analizi deney malzeme listesi
Devre analizi deney malzeme listesiDevre analizi deney malzeme listesi
Devre analizi deney malzeme listesi
 
Deney 6
Deney 6Deney 6
Deney 6
 
Deney 5
Deney 5Deney 5
Deney 5
 
Deney 3 ve 4
Deney 3 ve 4Deney 3 ve 4
Deney 3 ve 4
 
Deney 1 ve 2
Deney 1 ve 2Deney 1 ve 2
Deney 1 ve 2
 
Data structure week y 5 1
Data structure week y 5 1Data structure week y 5 1
Data structure week y 5 1
 
Data structure week y 5
Data structure week y 5Data structure week y 5
Data structure week y 5
 
Data structure week y 4
Data structure week y 4Data structure week y 4
Data structure week y 4
 
Data structure week 3
Data structure week 3Data structure week 3
Data structure week 3
 
Data structure week 2
Data structure week 2Data structure week 2
Data structure week 2
 
Data structure week 1
Data structure week 1Data structure week 1
Data structure week 1
 
12. stl örnekler
12.  stl örnekler12.  stl örnekler
12. stl örnekler
 
Devre analizi defter
Devre analizi defterDevre analizi defter
Devre analizi defter
 
H12 blm221
H12 blm221H12 blm221
H12 blm221
 
H11 blm221
H11 blm221H11 blm221
H11 blm221
 
H9 blm221
H9 blm221H9 blm221
H9 blm221
 
H8 blm221 multiplexer-decoder-bellekler
H8 blm221 multiplexer-decoder-belleklerH8 blm221 multiplexer-decoder-bellekler
H8 blm221 multiplexer-decoder-bellekler
 
H8 blm221 (1)
H8 blm221 (1)H8 blm221 (1)
H8 blm221 (1)
 

9. şablonlar

  • 1. KBUZEM Karabük Üniversitesi Uzaktan Eğitim Araştırma ve Uygulama Merkezi 9. HAFTA NESNEYE DAYALI PROGRAMLAMA
  • 2. BLM225 Nesneye Dayalı Programlama 2 9. Şablonlar (Templates) Şablonlar yazılımları tekrar kullanabilmenin bir yöntemidir. Bu sayede tek bir kod yazarak farklı tiplerde değer alan fonksiyonlar sınıflar tanımlayabiliriz. Gövdeleri aynı olan fonksiyonları şablon olarak tanımlayabiliriz. Şablon kullanmanın iki önemli avantajı vardır. 1. Program kodunu kısaltır. Birden fazla fonksiyon yazacağımıza tek bir fonksiyon yazarız. 2. Hata düzeltmeyi kolaylaştırır. Eğer kod yazarken hata yapılmışsa tek bir yede düzeltmek yeterli olacaktır. Aşağıda verilen programda GetMax fonksiyonu aşırı yüklenmiştir. Bu fonksiyon ilkinde int türünden sayıları parametre olarak olmakta ve büyüğünü geri döndürmektedir. İkincisinde ise float türünden sayıları parametre olarak almaktadır. Kod kısmı ise aynıdır. #include <iostream> #include <conio.h> using namespace std; int GetMax (int a, int b) { int result; result = (a>b)? a : b; return (result); } float GetMax (float a, float b) { float result; result = (a>b)? a*3 : b+10; return (result); } int main () { int i=5, j=6; float l=10.6, m=5.1; cout << GetMax(i,j)<< endl; cout << GetMax(l,m)<< endl; return 0; } Yukarda verilen iki fonksiyon yerine tek bir fonksiyon yazılabilir. Bunun için Fonksiyon şablon olarak tanımlanmalıdır. Aşağıda bunun örneği görülmektedir. Karabük Üniversitesi Uzaktan Eğitim Araştırma ve Uygulama Merkezi Mühendislik Fakültesi No: 215 Balıklarkayası Mevkii 78050 Karabük TÜRKİYE 2
  • 3. BLM225 Nesneye Dayalı Programlama 3 template <class T> T GetMax (T a, T b) { Yukarda verilen satırda a ve b int, float veya başka bir türden olabilir. Ne verilirse ona göre program derlenerek çalıştırılacaktır. Örneğin aşağıdaki satırda i ve j değişkenleri <int> ifadesi ile tamsayı olacağı belirtilmiştir. k=GetMax<int>(i,j); Eğer i ve j değişkenleri int i,j; şeklinde önceden int türünden oldukları belirtilmişse <int> ifadesini koymaya gerek yoktur. Bu taktirde int i,j; k=GetMax(i,j); Şeklinde de çağrılabilir. Aşağıda verilen örnekleri inceleyiniz. //------------------------------ #include <iostream> #include <conio.h> using namespace std; template <class S> S GetMax (S a, S b) { S result; result = (a>b)? a : b; return (result); } int main () { int i=5, j=6, k; float l=10.6, m=5.7, n; char x='p' , y='r', c; cout <<GetMax<int>(i,j)<< endl; cout <<GetMax<float>(l,m)<< endl; cout<<GetMax<char>(x,y)<<endl; getch(); return 0; } //---------------------------------------------- Karabük Üniversitesi Uzaktan Eğitim Araştırma ve Uygulama Merkezi Mühendislik Fakültesi No: 215 Balıklarkayası Mevkii 78050 Karabük TÜRKİYE 3
  • 4. BLM225 Nesneye Dayalı Programlama 4 #include <iostream> #include <conio.h> using namespace std; template <class T, class U> T Alan (T a, U b) { return a*b; } int main () { double y=1.5; int x=3; cout << Alan(y,x)<< endl; cout << Alan(x,y)<< endl; getch(); return 0; } Karabük Üniversitesi Uzaktan Eğitim Araştırma ve Uygulama Merkezi Mühendislik Fakültesi No: 215 Balıklarkayası Mevkii 78050 Karabük TÜRKİYE 4
  • 5. BLM225 Nesneye Dayalı Programlama 5 //-------------------------------------- #include <iostream> using namespace std; template <class T> T GetMax (T a, T b) { T result; result = (a>b)? a : b; return (result); } int main () { int i=5, j=6, k; float l=10.6, m=5.7, n; k=GetMax(i,j); n=GetMax(l,m); cout << k << endl; cout << n << endl; return 0; } Karabük Üniversitesi Uzaktan Eğitim Araştırma ve Uygulama Merkezi Mühendislik Fakültesi No: 215 Balıklarkayası Mevkii 78050 Karabük TÜRKİYE 5
  • 6. BLM225 Nesneye Dayalı Programlama 6 Sınıflarda template kullanımı. Aşağıda verilen örneği inceleyiniz. #include <iostream> #include <conio.h> using namespace std; template <class T> class Dortgen { T x, y; public: void Dortgen<T>::DegerVer(T a, T b) { x = a; y = b; } T Dortgen<T>::Alan (void) { return x*y; } }; int main () { Dortgen <int>D1 ; Dortgen <float>D2; D1.DegerVer(3,4); D2.DegerVer(2.5,2.5); cout << "Alan1:" << D1.Alan()<<'n'; cout << "Alan2: " << D2.Alan()<<endl; getch(); return 0; } Karabük Üniversitesi Uzaktan Eğitim Araştırma ve Uygulama Merkezi Mühendislik Fakültesi No: 215 Balıklarkayası Mevkii 78050 Karabük TÜRKİYE 6
  • 7. BLM225 Nesneye Dayalı Programlama 7 #include <iostream> #include <conio.h> using namespace std; template <class T, class U> class Dortgen { T x; U y; public: void DegerVer(T,U); U Alan (void); }; template <class T, class U> void Dortgen<T,U>::DegerVer(T a, U b) { x = a; y = b; } template <class T, class U> U Dortgen<T,U>::Alan (void) { return x*y; } int main () { Dortgen <int,float>D1; Dortgen <int,float>D2; D1.DegerVer(4,3.1); D2.DegerVer(7.4,2.5); cout << "Alan1: " << D1.Alan()<<'n'; cout << "Alan2: " << D2.Alan()<<endl; return 0; } #include <iostream> #include <conio.h> using namespace std; template <class T, class U> class Dortgen { T x; U y; Karabük Üniversitesi Uzaktan Eğitim Araştırma ve Uygulama Merkezi Mühendislik Fakültesi No: 215 Balıklarkayası Mevkii 78050 Karabük TÜRKİYE 7
  • 8. BLM225 Nesneye Dayalı Programlama 8 public: void Dortgen<T,U>::DegerVer(T a, U b) { x = a; y = b; } U Dortgen<T,U>::Alan (void) { return x*y; } }; int main () { Dortgen <float,int>d1; Dortgen <int,float>d2; d1.DegerVer(4.5,3.6); d2.DegerVer(4.5,3.6); cout << "Alan1: " << d1.Alan()<<'n'; cout << "Alan2: " << d2.Alan()<<endl; return 0; } #include <iostream> #include <conio.h> using namespace std; template <class T,class U> class Dortgen { T x; U y; public: void Dortgen<T,U>::DegerVer(T a, U b) { x = a; y = b; } T Dortgen<T,U>::Alan (void) { return x*y; } }; int main () { Dortgen <float,int>D1 ; Karabük Üniversitesi Uzaktan Eğitim Araştırma ve Uygulama Merkezi Mühendislik Fakültesi No: 215 Balıklarkayası Mevkii 78050 Karabük TÜRKİYE 8
  • 9. BLM225 Nesneye Dayalı Programlama 9 Dortgen <int,float>D2; D1.DegerVer(3.5,4.5); D2.DegerVer(2.5,2.5); cout << "Alan1:" << D1.Alan()<<'n'; cout << "Alan2: " << D2.Alan()<<endl; getch(); return 0; } Karabük Üniversitesi Uzaktan Eğitim Araştırma ve Uygulama Merkezi Mühendislik Fakültesi No: 215 Balıklarkayası Mevkii 78050 Karabük TÜRKİYE 9
  • 10. BLM225 Nesneye Dayalı Programlama 9 Dortgen <int,float>D2; D1.DegerVer(3.5,4.5); D2.DegerVer(2.5,2.5); cout << "Alan1:" << D1.Alan()<<'n'; cout << "Alan2: " << D2.Alan()<<endl; getch(); return 0; } Karabük Üniversitesi Uzaktan Eğitim Araştırma ve Uygulama Merkezi Mühendislik Fakültesi No: 215 Balıklarkayası Mevkii 78050 Karabük TÜRKİYE 9