Bakın -> ile . arasında dağlar kadar fark vardır.
siz a->bla() dediğinizde a nın bir pointer olduğunu ve
bu pointerın gösterdiği yerdekinin iç öğesine ulaşıyorsunuz.
Yani siz aslında a nın iç öğesine değil a nın gösterdiği yerdeki şeyin iç
öğesi ile uğaşıyorsunuz bu nedenle .(nokta ) değil ->
Peki nokta kullanarak yapamaz mısınız ? Yaparsınız bunun için basitçe
(*a).bla() diye yazabilirsiniz. Ne yaptık ? ve ne yapmadık ?

öncelikle *a.bla() diyemeyiz (*a).bla() demeliyiz. Neden ?
çünkü . nın * a göre önceliği var bu nedenle önce  işlesin diye () koymalıyız.
Şimdi koda geri dönelim :

(*a).bla() ne yapıyor ? (*a) demek a degiskeninin gösterdiği veri/öğe/bellek
yani biz aracıyı aradan çıkartıyoruz. örnek vermek gerekirse :

a = 30;
b_ptr = &a;
burada b_ptr bizim göstericimiz olmakta olup a yı işaret eder. yani ekrana
b_ptr yi yazdırırsan 30 değil a nın bellekteki yerinin bilgisini yazdırırsın.
ama *b_ptr yi yazdırırsan 30 yazdırırsın. Buraya kadar pointerlar konusunu
anladıysan asıl konumuza dönelim

senin uğraştığın a->bla() kısmındaki a bir pointerdır o nedenle önce bunun
gösterdiği yerin içindekine bakman ulaşman gerekeceği için (*a).bla()
yapabilirsin.

Peki neden (*ptr_adi).oge değilde ptr_adi->oge kullanılıyor ? çünkü
1- daha anlaşılır
2- "->" işlemi overloadable yani -> işlevini farklı işleyecek şekilde
yazabilirsin ( ileri programlama konuları )
3- ve en önemlisi . bizim bu örnekteki gibi göstericilere
uygulanamıyor ki zaten -> bu yüzden mevcut


2011/7/12 Mucibirahman İLBUĞA <[email protected]>:
> 12-07-2011 00:19 tarihinde, Serdar KÖYLÜ yazdı:
>> Qt'nin lisans mevzularını da göz önünde tutun derim.
>>
> Merhabalar,
> Qt ile wx kütüphanesini kıyaslayabilir misiniz? Birbirlerine göre
> avantaj/dezavantajları nelerdir?
>
> --
> Kolay gelsin,
> Mucip:)
>
> _______________________________________________
> Linux-programlama mailing list
> [email protected]
> https://liste.linux.org.tr/mailman/listinfo/linux-programlama
> Liste kurallari: http://liste.linux.org.tr/kurallar.php
>



-- 
Ömer Fadıl USTA
http://www.bilisimlab.com/
_______________________________________________
Linux-programlama mailing list
[email protected]
https://liste.linux.org.tr/mailman/listinfo/linux-programlama
Liste kurallari: http://liste.linux.org.tr/kurallar.php

Cevap