SlideShare a Scribd company logo
1 of 8
KBUZEM
Karabük Üniversitesi
Uzaktan Eğitim Araştırma ve Uygulama Merkezi
8. Çokbiçimlilik (Polymorphism)
Nesne yönelimli programlamada üç önemli kavram bulunmaktadır. Bunlar sırası ile Sınıflar,
Kalıtım ve Çokbiçimlilik dir. Çokbiçimlilik sanal(virtual) fonksiyonlarla gerçekleştirilir.
Sanal fonksiyonların da temel sınıfa işaret eden işaretçilerle yakın ilişkisi vardır.
İşaretçiler ve türemiş sınıflar
8. HAFTA
NESNEYE DAYALI PROGRAMLAMA
BLM225
Nesneye Dayalı Programlama
2
Temel sınıf türünden bir işaretçi, türemiş sınıf türünden bir nesnenin adresini tutabilir.
Aşağıdaki örnekte P1, P2 işaretçilerinin Cokgen türünden olduğuna ve sırası ile Dortgen ve
Uçgen türünden nesnelerin adreslerini tuttuklarına dikkat ediniz. Ayrıca Hem temel sınıfta ve
hem de türemiş sınıfta tanımlanmış int Alan() fonksiyonu yer almaktadır. Bu fonksiyon
çağrıldığında hangi Alan fonksiyonu çağrılmış olacaktır. Eğer işaretçi kullanılmamış ise
çağıran nesne hangi sınıftan ise o sınıfın Alan fonksiyonu işlem görecektir. Aşağıdaki örnekte
D1.Alan(); ifadesinde
D1 dortgen türünden olduğu için D1 nesnesinin Alan fonksiyonu çağrılacaktır. Yani Türemiş
sınıfın Alan isimli fonksiyonu temel sınıfın aynı isimli fonksiyonunu
örtecektir(Gizleyecektir).
Aşağıda verilen ifadelerde P1 ve P2 Cokgen (temel sınıf) türünden işaretçiler olup, türemiş
sınıflar türünden tanımlanmış D1 ve U1 nesnelerinin adresini tutmaktadır.
Dortgen D1;
Ucgen U1;
Cokgen *P1=&D1;
Cokgen *P2=&U1;
P1->Alan(); P2->Alan() ; ifadeleri de temel sınıfın Alan fonksiyonunu çağıracaktır. Bunun
sebei P1 ve P2 nin temel sınıf türünden olmasıdır ve Çalışma anında (run time) sadece P1 ve
P2 işaretçilerinin türüne bakılması içeriğine yani nasıl bir nesnenin adresinin tutulduğuna
bakılmamasıdır. Amacımız türemiş sınıfın kendi Alan foksiyonlarını çağırması olduğuna göre
bu nasıl sağlanacaktır?
#include <iostream>
using namespace std;
class Cokgen {
public:
int genislik, yukseklik;
public:
void DegerVer(int a,int b) {
genislik=a; yukseklik=b;
}
int Alan() {return 0;}
};
class Dortgen : public Cokgen{ //Dorgen sınıfı Cokgen sınıfından turetiliyor
public:
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
int Alan () {return genislik*yukseklik;}
};
class Ucgen : public Cokgen{ //Ucgen sınıfı Cokgen sınıfından turetiliyor
public:
int Alan () {return (genislik*yukseklik)/2;}
};
int main ()
{
Dortgen D1;
Ucgen U1;
//P1, P2 işaretçilerinin Cokgen türünden olduğuna ve
// sırası ile Dortgen, Uçgen türünden nesnelerin
//adreslerini tutuklarına dikkat ediniz.
Cokgen *P1=&D1;
Cokgen *P2=&U1;
P1->DegerVer(3,4);
P2->DegerVer(7,8);
cout << P1->Alan()<<endl; //temel sınıfın Alan fonk. çağrılır
cout << P2->Alan()<<endl; //temel sınıfın Alan fonk. çağrılır
cout << D1.Alan()<<endl; //türemiş sınıfın Alan fonk. Çağrılıyor.
cout << U1.Alan()<<endl; //Alan fonk. Temel sınıfı örtüyor.
return 0;
}
Türemiş sınıfın kendi Alan fonksiyonunu çağırmasını sağlamak için temel sınıfta yer alan
Alan fonksiyonunun başına aşağıda görüldüğü gibi virtual(sanal) kelimesi getirilmesi
gerekmektedir.
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
class Cokgen {
public:
int genislik, yukseklik;
public:
void DegerVer(int a,int b) {
genislik=a; yukseklik=b;
}
virtual int Alan() {return 0;}
};
Bu takdirde yukardaki programın ekran çıktısı şu şekildedir.
Başka bir örnek
#include <iostream>
#include <conio.h>
using namespace std;
class Cokgen {
public:
int genislik, yukseklik;
public:
void DegerVer(int a,int b) {
genislik=a; yukseklik=b;
}
virtual int Alan() {return genislik*yukseklik/3;}
};
class Dortgen : public Cokgen{ //Dorgen sınıfı Cokgen sınıfından turetiliyor
public:
int Alan () {return genislik*yukseklik;}
};
class Ucgen : public Cokgen{ //Ucgen sınıfı Cokgen sınıfından turetiliyor
public:
int Alan () {return (genislik*yukseklik)/2;}
};
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
int main ()
{
Dortgen D1;
Ucgen U1;
Cokgen C1;
Dortgen *P1=&D1;
Ucgen *P2=&U1;
Cokgen *P3=&C1;
Cokgen *PP1=&D1;
Cokgen *PP2=&U1;
Cokgen *PP3=&C1;
D1.DegerVer(3,4);
U1.DegerVer(7,8);
C1.DegerVer(2,6);
P1->DegerVer(3,4);
P2->DegerVer(7,8);
P3->DegerVer(2,6);
PP1->DegerVer(3,4);
PP2->DegerVer(7,8);
PP3->DegerVer(2,6);
cout << D1.Alan()<<endl;
cout << U1.Alan()<<endl;
cout << C1.Alan()<<endl;
cout << P1->Alan()<<endl;
cout << P2->Alan()<<endl;
cout << P3->Alan()<<endl;
cout << PP1->Alan()<<endl;
cout << PP2->Alan()<<endl;
cout << PP3->Alan()<<endl;
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
return 0;
}
#include <iostream>
#include <conio.h>
using namespace std;
class Cokgen {
public:
int genislik, yukseklik;
public:
void DegerVer(int a,int b) {
genislik=a; yukseklik=b;
}
int Alan() {return genislik*yukseklik/3;}
};
class Dortgen : public Cokgen{ //Dorgen sınıfı Cokgen sınıfından turetiliyor
public:
int Alan () {return genislik*yukseklik;}
};
class Ucgen : public Cokgen{ //Ucgen sınıfı Cokgen sınıfından turetiliyor
public:
int Alan () {return (genislik*yukseklik)/2;}
};
int main ()
{
Dortgen D1;
Ucgen U1;
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
Cokgen C1;
Cokgen *PP1=&D1;
Cokgen *PP2=&U1;
Cokgen *PP3=&C1;
PP1->DegerVer(10,12);
PP2->DegerVer(10,12);
PP3->DegerVer(10,12);
cout << PP1->Alan()<<endl;
cout << PP2->Alan()<<endl;
cout << PP3->Alan()<<endl;
getch();
return 0;
}
class Cokgen {
public:
int genislik, yukseklik;
public:
void DegerVer(int a,int b) {
genislik=a; yukseklik=b;
}
virtual int Alan() {return genislik*yukseklik/3;}
};
class Dortgen : public Cokgen{ //Dorgen sınıfı Cokgen sınıfından turetiliyor
public:
int Alan () {return genislik*yukseklik;}
};
class Ucgen : public Cokgen{ //Ucgen sınıfı Cokgen sınıfından turetiliyor
public:
int Alan () {return (genislik*yukseklik)/2;}
};
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
int main ()
{
Dortgen D1;
Ucgen U1;
Cokgen C1;
Cokgen *PP1=&D1;
Cokgen *PP2=&U1;
Cokgen *PP3=&C1;
PP1->DegerVer(10,12);
PP2->DegerVer(10,12);
PP3->DegerVer(10,12);
cout << PP1->Alan()<<endl;
cout << PP2->Alan()<<endl;
cout << PP3->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
8

More Related Content

What's hot

3. aşırı yükleme yaşam alanı - dinamik bellek kullanımı
3. aşırı yükleme   yaşam alanı - dinamik bellek kullanımı3. aşırı yükleme   yaşam alanı - dinamik bellek kullanımı
3. aşırı yükleme yaşam alanı - dinamik bellek kullanımıkarmuhtam
 
11. stl kütüphanesi
11. stl kütüphanesi11. stl kütüphanesi
11. stl kütüphanesikarmuhtam
 
1. nesneye dayalı programlama giriş
1. nesneye dayalı programlama   giriş1. nesneye dayalı programlama   giriş
1. nesneye dayalı programlama girişkarmuhtam
 
13. sınıfları başlık dosyaları
13.  sınıfları başlık dosyaları13.  sınıfları başlık dosyaları
13. sınıfları başlık dosyalarıkarmuhtam
 
Introduction to iOS Programming && About XMPPFramework
Introduction to iOS Programming && About XMPPFrameworkIntroduction to iOS Programming && About XMPPFramework
Introduction to iOS Programming && About XMPPFrameworkAnıl Sözeri
 
C#, Microsoft Yaz Okulu 2011 - İzmir
C#, Microsoft Yaz Okulu 2011 - İzmirC#, Microsoft Yaz Okulu 2011 - İzmir
C#, Microsoft Yaz Okulu 2011 - İzmirEnterprisecoding
 
Ileri seviye javascript by Azer Koculu
Ileri seviye javascript by Azer KoculuIleri seviye javascript by Azer Koculu
Ileri seviye javascript by Azer Koculumustafa sarac
 
Java ile grogramlamaya giris
Java ile grogramlamaya girisJava ile grogramlamaya giris
Java ile grogramlamaya girisrudiacikgoz
 

What's hot (9)

3. aşırı yükleme yaşam alanı - dinamik bellek kullanımı
3. aşırı yükleme   yaşam alanı - dinamik bellek kullanımı3. aşırı yükleme   yaşam alanı - dinamik bellek kullanımı
3. aşırı yükleme yaşam alanı - dinamik bellek kullanımı
 
11. stl kütüphanesi
11. stl kütüphanesi11. stl kütüphanesi
11. stl kütüphanesi
 
1. nesneye dayalı programlama giriş
1. nesneye dayalı programlama   giriş1. nesneye dayalı programlama   giriş
1. nesneye dayalı programlama giriş
 
13. sınıfları başlık dosyaları
13.  sınıfları başlık dosyaları13.  sınıfları başlık dosyaları
13. sınıfları başlık dosyaları
 
Introduction to iOS Programming && About XMPPFramework
Introduction to iOS Programming && About XMPPFrameworkIntroduction to iOS Programming && About XMPPFramework
Introduction to iOS Programming && About XMPPFramework
 
C#, Microsoft Yaz Okulu 2011 - İzmir
C#, Microsoft Yaz Okulu 2011 - İzmirC#, Microsoft Yaz Okulu 2011 - İzmir
C#, Microsoft Yaz Okulu 2011 - İzmir
 
Ileri seviye javascript by Azer Koculu
Ileri seviye javascript by Azer KoculuIleri seviye javascript by Azer Koculu
Ileri seviye javascript by Azer Koculu
 
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
 

More from karmuhtam

Devre analizi deney malzeme listesi
Devre analizi deney malzeme listesiDevre analizi deney malzeme listesi
Devre analizi deney malzeme listesikarmuhtam
 
Deney 3 ve 4
Deney 3 ve 4Deney 3 ve 4
Deney 3 ve 4karmuhtam
 
Deney 1 ve 2
Deney 1 ve 2Deney 1 ve 2
Deney 1 ve 2karmuhtam
 
Data structure week y 5 1
Data structure week y 5 1Data structure week y 5 1
Data structure week y 5 1karmuhtam
 
Data structure week y 5
Data structure week y 5Data structure week y 5
Data structure week y 5karmuhtam
 
Data structure week y 4
Data structure week y 4Data structure week y 4
Data structure week y 4karmuhtam
 
Data structure week 3
Data structure week 3Data structure week 3
Data structure week 3karmuhtam
 
Data structure week 2
Data structure week 2Data structure week 2
Data structure week 2karmuhtam
 
Data structure week 1
Data structure week 1Data structure week 1
Data structure week 1karmuhtam
 
12. stl örnekler
12.  stl örnekler12.  stl örnekler
12. stl örneklerkarmuhtam
 
Devre analizi defter
Devre analizi defterDevre analizi defter
Devre analizi defterkarmuhtam
 
H8 blm221 multiplexer-decoder-bellekler
H8 blm221 multiplexer-decoder-belleklerH8 blm221 multiplexer-decoder-bellekler
H8 blm221 multiplexer-decoder-belleklerkarmuhtam
 
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)
 

8. çok biçimlilik

  • 1. KBUZEM Karabük Üniversitesi Uzaktan Eğitim Araştırma ve Uygulama Merkezi 8. Çokbiçimlilik (Polymorphism) Nesne yönelimli programlamada üç önemli kavram bulunmaktadır. Bunlar sırası ile Sınıflar, Kalıtım ve Çokbiçimlilik dir. Çokbiçimlilik sanal(virtual) fonksiyonlarla gerçekleştirilir. Sanal fonksiyonların da temel sınıfa işaret eden işaretçilerle yakın ilişkisi vardır. İşaretçiler ve türemiş sınıflar 8. HAFTA NESNEYE DAYALI PROGRAMLAMA
  • 2. BLM225 Nesneye Dayalı Programlama 2 Temel sınıf türünden bir işaretçi, türemiş sınıf türünden bir nesnenin adresini tutabilir. Aşağıdaki örnekte P1, P2 işaretçilerinin Cokgen türünden olduğuna ve sırası ile Dortgen ve Uçgen türünden nesnelerin adreslerini tuttuklarına dikkat ediniz. Ayrıca Hem temel sınıfta ve hem de türemiş sınıfta tanımlanmış int Alan() fonksiyonu yer almaktadır. Bu fonksiyon çağrıldığında hangi Alan fonksiyonu çağrılmış olacaktır. Eğer işaretçi kullanılmamış ise çağıran nesne hangi sınıftan ise o sınıfın Alan fonksiyonu işlem görecektir. Aşağıdaki örnekte D1.Alan(); ifadesinde D1 dortgen türünden olduğu için D1 nesnesinin Alan fonksiyonu çağrılacaktır. Yani Türemiş sınıfın Alan isimli fonksiyonu temel sınıfın aynı isimli fonksiyonunu örtecektir(Gizleyecektir). Aşağıda verilen ifadelerde P1 ve P2 Cokgen (temel sınıf) türünden işaretçiler olup, türemiş sınıflar türünden tanımlanmış D1 ve U1 nesnelerinin adresini tutmaktadır. Dortgen D1; Ucgen U1; Cokgen *P1=&D1; Cokgen *P2=&U1; P1->Alan(); P2->Alan() ; ifadeleri de temel sınıfın Alan fonksiyonunu çağıracaktır. Bunun sebei P1 ve P2 nin temel sınıf türünden olmasıdır ve Çalışma anında (run time) sadece P1 ve P2 işaretçilerinin türüne bakılması içeriğine yani nasıl bir nesnenin adresinin tutulduğuna bakılmamasıdır. Amacımız türemiş sınıfın kendi Alan foksiyonlarını çağırması olduğuna göre bu nasıl sağlanacaktır? #include <iostream> using namespace std; class Cokgen { public: int genislik, yukseklik; public: void DegerVer(int a,int b) { genislik=a; yukseklik=b; } int Alan() {return 0;} }; class Dortgen : public Cokgen{ //Dorgen sınıfı Cokgen sınıfından turetiliyor public: 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 int Alan () {return genislik*yukseklik;} }; class Ucgen : public Cokgen{ //Ucgen sınıfı Cokgen sınıfından turetiliyor public: int Alan () {return (genislik*yukseklik)/2;} }; int main () { Dortgen D1; Ucgen U1; //P1, P2 işaretçilerinin Cokgen türünden olduğuna ve // sırası ile Dortgen, Uçgen türünden nesnelerin //adreslerini tutuklarına dikkat ediniz. Cokgen *P1=&D1; Cokgen *P2=&U1; P1->DegerVer(3,4); P2->DegerVer(7,8); cout << P1->Alan()<<endl; //temel sınıfın Alan fonk. çağrılır cout << P2->Alan()<<endl; //temel sınıfın Alan fonk. çağrılır cout << D1.Alan()<<endl; //türemiş sınıfın Alan fonk. Çağrılıyor. cout << U1.Alan()<<endl; //Alan fonk. Temel sınıfı örtüyor. return 0; } Türemiş sınıfın kendi Alan fonksiyonunu çağırmasını sağlamak için temel sınıfta yer alan Alan fonksiyonunun başına aşağıda görüldüğü gibi virtual(sanal) kelimesi getirilmesi gerekmektedir. 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 class Cokgen { public: int genislik, yukseklik; public: void DegerVer(int a,int b) { genislik=a; yukseklik=b; } virtual int Alan() {return 0;} }; Bu takdirde yukardaki programın ekran çıktısı şu şekildedir. Başka bir örnek #include <iostream> #include <conio.h> using namespace std; class Cokgen { public: int genislik, yukseklik; public: void DegerVer(int a,int b) { genislik=a; yukseklik=b; } virtual int Alan() {return genislik*yukseklik/3;} }; class Dortgen : public Cokgen{ //Dorgen sınıfı Cokgen sınıfından turetiliyor public: int Alan () {return genislik*yukseklik;} }; class Ucgen : public Cokgen{ //Ucgen sınıfı Cokgen sınıfından turetiliyor public: int Alan () {return (genislik*yukseklik)/2;} }; 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 int main () { Dortgen D1; Ucgen U1; Cokgen C1; Dortgen *P1=&D1; Ucgen *P2=&U1; Cokgen *P3=&C1; Cokgen *PP1=&D1; Cokgen *PP2=&U1; Cokgen *PP3=&C1; D1.DegerVer(3,4); U1.DegerVer(7,8); C1.DegerVer(2,6); P1->DegerVer(3,4); P2->DegerVer(7,8); P3->DegerVer(2,6); PP1->DegerVer(3,4); PP2->DegerVer(7,8); PP3->DegerVer(2,6); cout << D1.Alan()<<endl; cout << U1.Alan()<<endl; cout << C1.Alan()<<endl; cout << P1->Alan()<<endl; cout << P2->Alan()<<endl; cout << P3->Alan()<<endl; cout << PP1->Alan()<<endl; cout << PP2->Alan()<<endl; cout << PP3->Alan()<<endl; 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 return 0; } #include <iostream> #include <conio.h> using namespace std; class Cokgen { public: int genislik, yukseklik; public: void DegerVer(int a,int b) { genislik=a; yukseklik=b; } int Alan() {return genislik*yukseklik/3;} }; class Dortgen : public Cokgen{ //Dorgen sınıfı Cokgen sınıfından turetiliyor public: int Alan () {return genislik*yukseklik;} }; class Ucgen : public Cokgen{ //Ucgen sınıfı Cokgen sınıfından turetiliyor public: int Alan () {return (genislik*yukseklik)/2;} }; int main () { Dortgen D1; Ucgen U1; 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 Cokgen C1; Cokgen *PP1=&D1; Cokgen *PP2=&U1; Cokgen *PP3=&C1; PP1->DegerVer(10,12); PP2->DegerVer(10,12); PP3->DegerVer(10,12); cout << PP1->Alan()<<endl; cout << PP2->Alan()<<endl; cout << PP3->Alan()<<endl; getch(); return 0; } class Cokgen { public: int genislik, yukseklik; public: void DegerVer(int a,int b) { genislik=a; yukseklik=b; } virtual int Alan() {return genislik*yukseklik/3;} }; class Dortgen : public Cokgen{ //Dorgen sınıfı Cokgen sınıfından turetiliyor public: int Alan () {return genislik*yukseklik;} }; class Ucgen : public Cokgen{ //Ucgen sınıfı Cokgen sınıfından turetiliyor public: int Alan () {return (genislik*yukseklik)/2;} }; 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 int main () { Dortgen D1; Ucgen U1; Cokgen C1; Cokgen *PP1=&D1; Cokgen *PP2=&U1; Cokgen *PP3=&C1; PP1->DegerVer(10,12); PP2->DegerVer(10,12); PP3->DegerVer(10,12); cout << PP1->Alan()<<endl; cout << PP2->Alan()<<endl; cout << PP3->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 8