0% found this document useful (0 votes)
3 views15 pages

CPPL10 Polymorphism

Uploaded by

engineeringengtr
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
3 views15 pages

CPPL10 Polymorphism

Uploaded by

engineeringengtr
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

BİL-142 Bilgisayar Programlama II

(C/C++)

Hazırlayan: [Link] Akcayol


Gazi Üniversitesi
Bilgisayar Mühendisliği Bölümü

Konular
 Giriş
 Kalıtım Hiyerarşisinde Nesneler Arasında İlişki
 Derived Class Pointer’ı ve Base Class Nesnesi
 Base Class Pointer’ı ve Derived Class Fonksiyonu
 Upcasting ve Downcasting
 Virtual Fonksiyonlar

1
Giriş
 Polymorphism (çok biçimlilik), bir sınıf
nesnesinin başka bir sınıfın nesnesi gibi
davranmasını sağlar.
 Bir sınıf nesnesi başka bir sınıfın veri üyelerine
erişebilir.
 Bir sınıf nesnesi başka bir sınıfın fonksiyon üyelerine
erişebilir.

Konular
 Giriş
 Kalıtım Hiyerarşisinde Nesneler Arasındaki İlişki
 Derived Class Pointer’ı ve Base Class Nesnesi
 Base Class Pointer’ı ve Derived Class Fonksiyonu
 Upcasting ve Downcasting
 Virtual Fonksiyonlar

2
Kalıtım Hiyerarşisinde Nesneler Arasındaki İlişki
 Kalıtım hiyerarşisindeki tüm nesnelerin sanki
base class’ın bir nesnesi gibi davranmasını
sağlar.
 Bir program tanımlanan base class pointer’ı ile
derived class’tan oluşturulan nesnelerini
gösterebilir.

Kalıtım Hiyerarşisinde Nesneler Arasındaki İlişki

3
Temel Sınıflar ve Türetilmiş Sınıflar

Base class pointer’ı


ile türetilmiş class
nesnesi gösteriliyor.

Temel Sınıflar ve Türetilmiş Sınıflar

4
Konular
 Giriş
 Kalıtım Hiyerarşisinde Nesneler Arasındaki İlişki
 Derived Class Pointer’ı ve Base Class Nesnesi
 Base Class Pointer’ı ve Derived Class Fonksiyonu
 Upcasting ve Downcasting
 Virtual Fonksiyonlar

Derived Class Pointer’ı ve Base Class Nesnesi


 Derived class pointer’ı ile base class nesnesi
gösterilemez.
 Türetilmiş sınıf pointer’ı kullanılarak temel sınıf
nesnesindeki üyeler üzerinde işlem yapılamaz.

10

5
Derived Class Pointer’ı ve Base Class Nesnesi

11

Konular
 Giriş
 Kalıtım Hiyerarşisinde Nesneler Arasındaki İlişki
 Derived Class Pointer’ı ve Base Class Nesnesi
 Base Class Pointer’ı ve Derived Class Fonksiyonu
 Upcasting ve Downcasting
 Virtual Fonksiyonlar

6
Base Class Pointer’ı ve Derived Class Fonksiyonu
 Base class pointer’ı ile derived class’a ait
fonksiyon çağrılamaz.
 Derived class nesnesini gösteren base class
pointer’ını derived class pointer’ına doğrudan
dönüştürünce (explicit casting), sadece derived
class’ta olan üyelere erişim yapılabilir
(downcasting).
 Base class pointer’ı derived class nesnesini
gösterebilir, ancak sadece base class fonksiyonlarını
çağırabilir.

13

Base Class Pointer’ı ve Derived Class Fonksiyonu


 Base class pointer’ı ile derived class fonksiyonu çağrılamaz.

Base class pointer’ı


ile türetilmiş class
nesnesi gösteriliyor.

14

7
Base Class Pointer’ı ve Derived Class Fonksiyonu
 Base class pointer’ı ile derived class fonksiyonu çağrılamaz.

15

Konular
 Giriş
 Kalıtım Hiyerarşisinde Nesneler Arasındaki İlişki
 Derived Class Pointer’ı ve Base Class Nesnesi
 Base Class Pointer’ı ve Derived Class Fonksiyonu
 Upcasting ve Downcasting
 Virtual Fonksiyonlar

8
Upcasting ve Downcasting
Upcasting:
 Derived class nesnesinin base class pointer’ı ile
gösterilmesidir.
 Güvenli olduğundan dolaylı (implicit) tür dönüşümü
yapılır.

Downcasting:
 Derived class pointer’ı ile base class nesnesinin

(derived class nesnesinin pointer’ı) gösterilmesidir.


 Güvenli olmadığından doğruda (explicit) tür

dönüşümü yapılır.
17

Upcasting ve Downcasting

18

9
Upcasting ve Downcasting

Türetilmiş class
pointer’ı ile base
class türündeki
pointer (türetilmiş
class nesnesini
gösteriyor)
gösteriliyor.

19

Konular
 Giriş
 Kalıtım Hiyerarşisinde Nesneler Arasındaki İlişki
 Derived Class Pointer’ı ve Base Class Nesnesi
 Base Class Pointer’ı ve Derived Class Fonksiyonu
 Upcasting ve Downcasting
 Virtual Fonksiyonlar

10
Virtual Fonksiyonlar
 Belirlenen tür, hangi sınıfın fonksiyonunun
çalıştırılacağına karar verir.
 Önceki örnekte, CommissionEmployee pointer’ı
üyesi olan print() fonksiyonu ile
BasePlusCommissionEmployee nesnesinin
değerlerini yazdırmaktadır.
 BasePlusCommissionEmployee pointer’ı üyesi
olan print() fonksiyonu ile kendi değerlerini
yazdırmaktadır.
 virtual fonksiyonlarla nesnenin türüne göre üye
fonksiyon çalıştırılır.

21

Virtual Fonksiyonlar

22

11
Virtual Fonksiyonlar

23

Virtual Fonksiyonlar

24

12
Virtual Fonksiyonlar

25

Virtual Fonksiyonlar

26

13
Virtual Fonksiyonlar

27

Virtual Fonksiyonlar

28

14
Virtual Fonksiyonlar

29

15

You might also like