foo->bar() ile
(*foo).bar() aynı şeydir.
Yukarıdaki parantezler,
* ile
. operatörlerinin bağlanma gücü nedeniyle gereklidir.
Kodu
*foo.bar() olarak kullanırsanız işe yaramaz, çünkü önce Dot yani
. operatörü değerlendirilir. Operatör önceliklerine
buradan bakabilirsiniz.
Dot
. operatörü aşırı yüklenemez, arrow
-> operatörü aşırı yüklenebilir.
Dot
. operatörü işaretleyicilere(pointer) uygulanamaz.
Şöyle de söyleyebiliriz, hedef farkındalığı. Dot, nesneler üzerinde çalışır; arrow, nesnelere yönelik işaretçiler üzerinde çalışır. Projenizde pointer bulunduğunda
->, structure bulunduğunda
. kullanın.