Picproje Elektronik Sitesi

PROGRAMLAMA DİLLERİ => C/C++ => Konuyu başlatan: elb03 - 13 Kasım 2013, 16:41:50

Başlık: c++ nesnelerle ilgili bir soru
Gönderen: elb03 - 13 Kasım 2013, 16:41:50
merhaba arkadaşlar.

c++ yeni öğrenmeye başladım ve  nesneleri konusunda kafama bir soru takıldı. biz nesne içinde değişkenleri neden private olarak tanımlıyoruz ??

direkt public kısmında tanımlanan değişkenler de var. lakin örneklerin çoğunda private olarak tanımlayıp public kısmında yapıcı fonsyonlarla atama yapıyoruz. private tanımlamanın avantajı nedir ki bu zahmetlere giriyoruz?
Başlık: Ynt: c++ nesnelerle ilgili bir soru
Gönderen: Klein - 13 Kasım 2013, 17:41:19
Sınıfın üyesi olmayan bir fonksiyon tarafından bu değerin değişmesini engellemek için.
Örneğin:
bir kaç değişkenin var ve bu değişkenlerin değerleri birbirlerine bağlı olarak değişiyor.  Birisinde bir değişiklik olursa, diğerlerinin de değişmesi gerek.
Eğer bu değişkenlere direk ulaşılabilirse, yanlışlıkla bu değer değiştirilebilir ve program çökebilir.
Başlık: Ynt: c++ nesnelerle ilgili bir soru
Gönderen: Tagli - 13 Kasım 2013, 17:49:25
Olay dille değil, nesne yönelimli tasarımla ilgili. Nesne yönelimli tasarımda, bir nesnenin iç işlerine karışılması mümkün olduğunca engellenir. Bu yaklaşım, hatalı bir tasarımın ve ileride çıkabilecek diğer sorunların önüne geçer. Basit örneklerde veya ufak programlarda saçma gibi gelebilir ama iş büyüdükçe ciddi fayda sağlar.

Python'un, konuyla ilgili biraz daha farklı bir yaklaşımı var gerçi. Burada (http://tomayko.com/writings/getters-setters-fuxors) değinilmiş.

Wikipedia'da konuyla ilgili ayrıntılı bilgi var: http://en.wikipedia.org/wiki/Encapsulation_%28object-oriented_programming%29 (http://en.wikipedia.org/wiki/Encapsulation_%28object-oriented_programming%29)
Başlık: Ynt: c++ nesnelerle ilgili bir soru
Gönderen: elb03 - 13 Kasım 2013, 22:29:37
teşekkürler arkadaşlar.

daha önce c++ dilinde hiç bir büyük projede yer almadığım için anlamakta zorlanmışım. şimdi biraz anladığımı düşünüyorum zamanla inşalalh daha iyi yerleşecektir kafama.

linkler için de ayrıca teşekkür ederim, göz atacağım hocam.