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
