MQL5 Derleyici, bir sınıf ile ona yönelik bir işaretçi arasında ayrım yapmaz - sayfa 4
![MQL5 - MetaTrader 5 müşteri terminalinde yerleşik ticaret stratejileri dili](https://c.mql5.com/i/registerlandings/logo-2.png)
Ticaret fırsatlarını kaçırıyorsunuz:
- Ücretsiz ticaret 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
eşit olduklarını
eşit olduklarını
Bu görevi unutun.
Bu görevi unutun.
Yani unutmak bana düşmez ama derleyici böyle yazmaya izin vermemeli .
Ve şu anda sadece derlemekle kalmıyor, aynı zamanda hatasız çalışıyor!
Yani unutmak bana düşmez ama derleyici böyle yazmaya izin vermemeli .
Ve şu anda sadece derlemekle kalmıyor, aynı zamanda hatasız çalışıyor!
Derleyici izin verir çünkü ne yaptığınızı anlarsanız mümkündür.
class A { public: int iValue; A(){Print("++");} ~A(){Print("--");} }; //...................... A m_A[2]; void OnStart() { A a; m_A[0] =a; m_A[1] = new A(); }
Çalıştırın ve yapıcı ve yıkıcının kaç kez ve ne zaman çağrıldığını görün.
m_A[0]=a; bu durumda şuna eşdeğerdir: m_A[0].iValue=a.iValue;
new A(), bu durumda yeni bir nesne oluşturur, buna koşullu olarak temp diyelim ve aşağıdakiler olur: m_A[1].iValue=temp.iValue;
Çalıştırın ve yapıcı ve yıkıcının kaç kez ve ne zaman çağrıldığını görün.
m_A[0]=a; bu durumda şuna eşdeğerdir: m_A[0].iValue=a.iValue;
Bu örnekte, ikinci satır doğru değil.
Bir nesneye işaretçi kaydedemezsiniz. Derleyici bunu fark etmez.
Bu örnekte, ikinci satır doğru değil.
Bir nesneye işaretçi kaydedemezsiniz. Derleyici bunu fark etmez.
Çalıştırın ve yapıcı ve yıkıcının kaç kez ve ne zaman çağrıldığını görün.
m_A[0]=a; bu durumda şuna eşdeğerdir: m_A[0].iValue=a.iValue;
new A(), bu durumda yeni bir nesne oluşturur, buna koşullu olarak temp diyelim ve aşağıdakiler olur: m_A[1].iValue=temp.iValue;
Muhtemelen yapıcı 3, yıkıcı 2. Gerisi doğru.
ve aşağıdakiler gerçekleşir: m_A[1].iValue=temp.iValue;
Bu zaten 4. yorum!
O zaman neden çıkışta silme çağrısı yapması gerekiyor? Geçici bir nesne için mi?
Bu zaten 4. yorum!
O zaman neden çıkışta silme çağrısı yapması gerekiyor? Geçici bir nesne için mi?