
Alım-satım fırsatlarını kaçırıyorsunuz:
- Ücretsiz alım-satım uygulamaları
- İşlem kopyalama için 8.000'den fazla sinyal
- Finansal piyasaları keşfetmek için ekonomik haberler
Kayıt
Giriş yap
Gizlilik ve Veri Koruma Politikasını ve MQL5.com Kullanım Şartlarını kabul edersiniz
Hesabınız yoksa, lütfen kaydolun
MQL5'te ve şimdi MQL4'te işaretçiler ve referanslar hakkında hala bir şey anlamıyorum. Ekstra kod dışında referans ve işaretçi ile geçiş arasındaki fark nedir? C++'da bir fark var ama burada ne fark var? Eğer zor değilse daha detaylı yazalım.
Referans ile geçmek, referans ile geçilen nesnenin ilklendirilmesini gerektirir. İşaretçi ile geçişte bu kısıtlama yoktur:
TestShapeRef fonksiyonu çağrıldığında, şekil ilklendirilmediği için kod çökecektir. Öte yandan, TestShapePointer fonksiyonu içinde, aktarılan nesnenin ilklendirilip ilklendirilmediğinin sürekli kontrol edilmesi gerekir. Bu nedenle, mantıksız kuralı izleyin:
Aklınızda tutmanız gereken ince bir nüans daha vardır. Önceki örneği düşünün:
Bu program doğru çalışacak mı? Hayır, TestShapePointer fonksiyonunda bir nesne oluşturmayı garantilemiş gibi görünmemize rağmen printf(shape.name); //ERROR (!?) satırında "invalid pointer access" hatası ile sonlanacaktır. Mesele şu ki, aslında shape yerine bir NULL referansı geçildi. Yani, fonksiyonun içindeki şekil ile geçirilen şekil farklı nesnelerdir! Bu nedenle, fonksiyondan çıktıktan sonra, shape hala NULL'a eşittir ve fonksiyon içindeki shape işaretçisi kaybolur (yığında temizlenir). Yani.Farklı türlerde nesneler içeren bir dizi oluşturmak mümkün müdür?
Bu örneği ele alalım:
//---
Miras alınan sınıfların yöntemlerine nasıl erişilir?
Mirasçı sınıfların yöntemlerine nasıl erişilir?
Bir hedef türü seçmeyi denediniz mi?
Hayır. İlk defa duyuyorum. Nerede okuyabilirim?
Olağan tip dönüşümü, işte bir örnek:
Hedef türe döküm yapmayı denediniz mi?
Kahretsin, bundan sonra dil güvenliğinden mi bahsediyorsun?
Çok biçimlilik kullanmak daha iyi olmaz mıydı?
Şöyle bir şey: