‫Merhaba ve hoş geldiniz.
‫Bu derste, bir işaretçinin diğer tarafındakine nasıl erişebileceğimizi
‫öğreneceğiz, böylece mover bileşenimiz üzerinde bulunduğu aktörden aktörün adını veya konumunu
‫almak gibi özellikleri alabilir.
‫Şimdi bunu nasıl yapabileceğimizi görelim.
‫Dolayısıyla, bir işaretçi alabilmek veya bir aktörün adresini alabilmek çok iyidir.
‫Ancak aktörün kendisiyle gerçekten bir şeyler yapabilmemiz gerekiyor.
‫Ve sadece aktöre bakarsak bunu yapma sürecini anlamak biraz zor.
‫Bu yüzden, bu tik bileşeninin içinde kayan noktalara bazı işaretçiler yapmaya bir göz atacağız.
‫Şimdi, my float adını vereceğimiz bir float oluşturarak başlayalım ve bunu beş değerine ayarlayalım.
‫Ardından, sizin float'ınız olarak adlandıracağım bir float işaretçisi oluşturacağız
‫ve bunu benim float'ımın adresi olarak ayarlayacağız.
‫Yani bunların ikisi de bellekte aynı adrese işaret ediyor.
‫Aradaki fark, float değerinizin bir adres olması, bu nedenle değeri yazdıramıyorum.
‫Yani bir u logu yapmak istiyorsam ve float değerinizin F yüzdesine eşit olduğunu söylemek istiyorsam, float değerinizi
‫giriyorum.
‫Bu işe yaramayacaktır çünkü float'ınız gerçek bir float değil, bir işaretçidir.
‫Yani esasen yapmamız gereken şey.
‫O konumdaki değeri alın.
‫Bunu yapabilmemizin yolu, float value adında yeni bir float değişkende saklamak ve ardından
‫aslında bir yıldız olan D referanslama operatörünü kullanmaktır.
‫Ve bunu referans vermek istediğimiz şeyin önüne koyuyoruz.
‫Daha sonra ona D referansına bir işaretçi veririz, bu durumda bu sizin float'ınızdır.
‫Şimdi bu yıldızları iki farklı bağlamda kullanmamız biraz garip.
‫Birincisi, türden sonra yıldız kullanıyoruz, bu da bize bunun bir float pointer olduğunu söylüyor.
‫Ve bunu bir türle birlikte kullandığınızda, bu onun bir işaretçi olduğu anlamına gelir.
‫Bir işaretçi ifadesinden önce bir yıldız kullandığınızda, burada yaptığınız şey, "Bana bu konumdaki
‫değeri getir" demek olur.
‫Böylece değeri alır ve float değerine kopyalar ve şimdi float değeri.
‫Bu şekilde çıktı alabiliriz.
‫O halde tüm bu kıvrımlarla birlikte, devam edelim ve derleyip iş başında görelim.
‫Oynat tuşuna basalım.
‫Ve tabii ki, float değerinizin beş olduğunu söylüyor, bu da başlangıçta sahip olduğumuz değer.
‫Şimdi, genellikle ara değeri bir değişkende saklamayız çünkü bu israftır.
‫İhtiyacımız olmayan bir kopya yaratıyor.
‫Bunun yerine yapabileceğimiz şey, bunu doğrudan ihtiyaç duyduğumuz ifadede kullanmaktır.
‫Yani float değeriniz star olacak, float değeriniz şu şekilde olacak ve bu tamamen aynı şekilde çalışacak, ancak
‫bu sefer gereksiz bir değişkene kopyalama yapmayacak.
‫Şimdi, buradaki aktörün adını almak istediğimizi varsayalım.
‫Bunu yapmanın yolu, float'larla yaptığımız bu şeyi kaldıralım, sahip işaretçisine
‫referans vermektir.
‫Bu yüzden bizi aktörün kendisine götüren yıldız sahibi yapıyoruz.
‫Daha sonra sahibinin etrafına bir çift parantez koyabilir ve ardından bir nokta yapabiliriz.
‫Böylece aktörü bu ifadeden çıkardık, şimdi aktörün içinden bir şey almak için bir nokta kullanabiliriz,
‫böylece bize bir f dizesi döndürecek olan get actor, name veya label yapabiliriz, böylece f string
‫name equals to this yapabiliriz ve sonra mover owner percent SW yazdırabiliriz ve sonra burada owner kullanmak yerine, name'i başlatacağız
‫veya sonra bunu getireceğiz.
‫Bir ismin önüne yıldız koymamız gerekiyor.
‫Bu da yıldız operatörü için başka bir kullanım alanı.
‫Zaten üç tanesiyle karşılaştık.
‫Biri bu dizeyle.
‫Bunu ilk kez görüyoruz.
‫Sonra burada yazıyla birlikte ve aynı zamanda D için de burada, tam olarak aynı karakter için çok sayıda kullanıma
‫atıfta bulunuyor.
‫Ama C++'da durum böyle.
‫Hadi gidip deneyelim ve oynat düğmesine basalım.
‫Ve şimdi taşıyıcının bağlı olduğu aktörlerin adını yazdırdığını görebilirsiniz.
‫Böylece D referanslama operatörü ile bu işaretçiye ulaştık ve farklı bir nesne üzerinde bir
‫fonksiyon çağırabildik.
‫Aslında bunu yapmak için çok daha kompakt bir sözdizimi var çünkü bunu parantezlerle yapmak
‫yerine bir işaretçi nesneden bir işlev veya özellik almak istememiz çok yaygındır ve referans operatörü olarak bunların
‫hepsini bir araya getirebiliriz.
‫Tüm bunları kaldırabilir veya noktayı taşıyabiliriz ve bunun yerine bu ok operatörünü kullanırız, böylece owner arrow, get
‫actor, name veya label yaparız ve bu tamamen aynı şeyi yapar, ancak yazması çok daha kolaydır.
‫Genel olarak konuşursak, bir işaretçimiz varsa ok operatörünü kullandığımız kuralla sonuçlanacaktır.
‫F dizesi veya F vektörü gibi bir yapı kullanıyorsak, nokta operatörünü kullanırız.
‫İşaretçileri nasıl kullanabileceğimize ilişkin bu yeni bilgiyi kullanarak aktörün konumunu yazdırmanızı istiyorum.
‫Bu yüzden sizden aktörün yerini öğrenmenizi istiyorum.
‫İşaretçiye bakmak ve nesne üzerinde bu işlevi çağırmak için ok operatörünü kullanacaksınız.
‫Diğer uçta, bunun sonucunda ortaya çıkan F vektörünü depolayacaksınız.
‫Ardından iki kompakt dize çağıracak, sonucu yeni bir F dize değişkeninde saklayacak ve bunu günlüğe yazdıracaksınız.
‫Videoyu duraklatın ve deneyin.
‫Tamam.
‫Tekrar hoş geldiniz.
‫Bu yüzden sahip konumu adında yeni bir F vektörü oluşturacağım ve sahip oku, aktör konumu al yapacağım.
‫Sonra bunu bir dizeye dönüştüreceğim.
‫Bu yüzden sahip konumu dizesi adında bir F dizem olacak ve bu, sahip konumu
‫noktasının kompakt dizeye eşit olacak, yani okey doke.
‫Artık kendi konum dizgimiz var.
‫Bunu günlüğe yazdırabiliriz.
‫Taşıyıcı sahibinin konum yüzde s ile bu olduğunu söyleyeceğim ve bu yüzde s gibi başka bir yıldız
‫sahibi konum dizesine sahip olacağız ve sonra control alt f 11'e basacağız ve devam edip
‫oynat'a basacağız ve hem aktörün adını hem de konumunu bir dize olarak yazdırdık.
‫Şimdi işaretçilere sahip olmanın ve işaretçiler üzerinde fonksiyon çağırabilmenin gücünü görebiliriz.
‫Farklı sınıf örnekleri arasında iletişim kurmamızı sağlar ve nesnelerimizi çok daha kullanışlı hale getirir.
‫Bir sonraki derste görüşürüz.