SABIT NESNE VE ELEMAN FONKSIYONLAR VE ELEMAN NESNELER - PowerPoint PPT Presentation

1 / 16
About This Presentation
Title:

SABIT NESNE VE ELEMAN FONKSIYONLAR VE ELEMAN NESNELER

Description:

Title: Memory-Based Learning Instance-Based Learning K-Nearest Neighbor Author: Rich Caruana Last modified by: Y lmaz Created Date: 9/30/2004 5:32:44 PM – PowerPoint PPT presentation

Number of Views:70
Avg rating:3.0/5.0
Slides: 17
Provided by: RichC162
Category:

less

Transcript and Presenter's Notes

Title: SABIT NESNE VE ELEMAN FONKSIYONLAR VE ELEMAN NESNELER


1
SABIT NESNE VE ELEMAN FONKSIYONLARVEELEMAN
NESNELER
Yilmaz Kiliçaslan
2
Sunum Plani
  • Bu derste sinif mekanizmasini su unsurlarini
    inceleyecegiz
  • const nesneler ve eleman fonksiyonlar
  • Eleman nesneler

3
const NESNELER VE ELEMAN FONKSIYONLAR - 1
  • Degiskenleri oldugu gibi nesneleri de const
    olarak bildirebilirsiniz
  • const Tarih dogum1( 7, 4, 1776 )
  • Bu tür bildirimler nesnenin sabit oldugu ve
    dolayisiyla hiçbir eleman sahasinin
    degistirilemeyecegi anlamina gelir.
  • Bir degiskeni const olarak bildirdiginizde,
    derleyici bu degiskenin degerini degistirebilecek
    islemleri tespit edip uygun hata mesajlarini
    üretebilir. Ancak, derleyici bir eleman
    fonksiyonun nesnenin eleman sahalarini degistirip
    degistiremeyecegini belirleyemez. Bu nedenle,
    hiçbir (siradan) eleman fonksiyon sabit bir nesne
    için çagrilamaz.

4
const NESNELER VE ELEMAN FONKSIYONLAR - 2
  • Eger bir eleman fonksiyon nesnenin hiçbir eleman
    sahasini degistirmiyorsa const olarak
    bildirilebilir ve bu sekilde sabit nesneler için
    çagrilabilir.
  • const anahtar sözcügü sabit fonksiyonlarin hem
    bildiriminde hem de tanimlanmasinda, parametre
    listesinden sonra, yer alir.
  • Sabit eleman fonksiyonlar ne nesnelerinin eleman
    sahalarini degistirebilir, ne de sabit olmayan
    eleman fonksiyonlari çagirabilirler.
  • Eleman fonksiyonlarinizi mümkün oldugunca sabit
    olarak bildirmelisiniz. Bu, sinifinizi
    kullananlarin sabit nesneler bildirmelerine izin
    verecektir.

5
const NESNELER VE ELEMAN FONKSIYONLAR - 3
  • class Tarih
  • public
  • Tarih( int mn, int dy, int yr )
  • int aySoyle() const
  • int gunSoyle() const
  • int yilSoyle() const
  • int ayBelirle( int mn )
  • int gunBelirle ( int dy )
  • int yilBelirle( int yr )
  • void goruntule() const
  • Tarih()
  • private
  • int ay, gun, yil
  • inline int TarihaySoyle() const return ay
  • // ...
  • int i const Tarih dogum1( 7, 4, 1776 )
  • i dogum1.yilSoyle() // Legal

6
ELEMAN NESNELER - 1
  • Bir sinif, nesneleri eleman olarak içerebilir. Bu
    sekilde diger siniflari bilesen olarak kullanma
    suretiyle yeni bir sinif tanimlama islemine
    composition denir
  • class KisiBilgisi
  • public
  • // Public eleman fonksiyonlar...
  • private
  • char isim30
  • char adres60
  • Tarih dogumTarihi
  • dogumTarihi nesnesinin hiç argüman almamasi
    dogrudan varsayilan yapici fonksiyonun
    çagrilacagi anlamina gelmez.
  • dogumTarihi nesnesi KisiBilgisi sinifindan bir
    nesne yaratilincaya kadar yaratilmaz.

7
ELEMAN NESNELER - 2
  • Bir eleman nesne için yapici fonksiyon çagrimi,
    eleman nesneye ilk deger atamalarinin yapilmasini
    gerektirir. Bunun icin yapilmasi gereken asagida
    örneklenmistir
  • class KisiBilgisi
  • public
  • KisiBilgisi(char nm, char adr,
  • int mn, int dy, int yr)
  • // ...
  • private
  • // ...

8
ELEMAN NESNELER - 3
  • KisiBilgisiKisiBilgisi(char nm, char adr,
  • int mn, int dy, int yr)
  • dogumTarihi( mn, dy, yr )
  • strncpy( name, nm, 30 )
  • strncpy( adres, adr, 60 )
  • Ilk once Tarih sinifinin yapici fonksiyonu
    çagrilir böylelikle dogumTarihi nesnesi ilk
    degerlerini KisiBilgisi sinifinin yapici
    fonksiyonu çalistirilmadan alir.

9
Örnek
  • include ltiostreamgt
  • using namespace std
  • define SIZE 100
  • // Stack sinifi
  • class stack
  • int stackSIZE
  • int tos
  • public
  • stack() // constructor
  • stack() // destructor
  • void push(int i)
  • int pop()

10
. . .
  • // Yapici Fonksiyon
  • stackstack()
  • tos 0
  • cout ltlt "Stack Initialized\n"
  • // Yikici Fonksiyon
  • stackstack()
  • cout ltlt "Stack Destroyed\n"

11
. . .
  • void stackpush(int i)
  • if(tosSIZE)
  • cout ltlt "Stack is full.\n"
  • return
  • stcktos i
  • tos

12
. . .
  • int stackpop()
  • if(tos0)
  • cout ltlt "Stack underflow.\n"
  • return 0
  • tos--
  • return stcktos

13
. . .
  • int main()
  • stack a, b // iki stack nesnesi yaratildi
  • a.push(1)
  • b.push(2)
  • a.push(3)
  • b.push(4)
  • cout ltlt a.pop() ltlt " "
  • cout ltlt a.pop() ltlt " "
  • cout ltlt b.pop() ltlt " "
  • cout ltlt b.pop() ltlt "\n"
  • return 0

14
. . .
  • Program Çiktisi
  • Stack Initialized
  • Stack Initialized
  • 3 1 4 2
  • Stack Destroyed
  • Stack Destroyed

15
ÖZET
  • Sabit nesnelerin eleman sahalarinin degeri
    degistirilemez ve bu sahalara yalnizca sabit
    olduklari bildirilmis eleman fonksiyonlarla
    erisilir.
  • Eleman nesnelerin yapici fonksiyonlari, elemani
    olduklari nesnenin yapici fonksiyonunun
    çagrilmasindan hemen önce çagrilir.

16
Kaynaklar
  • Booch, G. 1998. Object-Oriented Analysis and
    Design. Addison-Wesley.
  • Programmers Guides, Microsoft Visual C.
  • Wegner, P. 1976. IEEE Transactions on Computers,
    December, 1207-1225.
Write a Comment
User Comments (0)
About PowerShow.com