c++ nesnelerle ilgili bir soru

Başlatan elb03, 13 Kasım 2013, 16:41:50

elb03

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?

Klein

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.

Tagli

#2
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 değinilmiş.

Wikipedia'da konuyla ilgili ayrıntılı bilgi var: http://en.wikipedia.org/wiki/Encapsulation_%28object-oriented_programming%29
Gökçe Tağlıoğlu

elb03

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.