MQL5 Derleyici, bir sınıf ile ona yönelik bir işaretçi arasında ayrım yapmaz - sayfa 2
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
Bir kopya için beklediğim buydu.Varsayılan kopya oluşturucu bir hata değil.
Ancak Dmitry , bellekte yeni bir nesnenin ayrılacağını ve POINTER_AUTOMATIC türünde bir işaretçinin döndürüleceğini ve kopya olmayacağını iddia ediyor.
Herkes MQL'nin tuhaflıklarını kendi tarzında anlar)
Evet. Noel Baba yok.
Bellekteki herhangi bir nesne hakkında yazmadım.
Tamam, bir zamanlar anlaşmazlıklar vardı - bir bağlantı bir işaretçiden nasıl ayırt edilir. Ama şimdi, nesne işaretçiden ayırt edilemiyor gibi görünüyor.
Nesnenin kopyası nereden gelecek? İşaretçinin bir kopyası - evet, ancak aynı nesneye işaret ediyor.
Bir dizi nesnemiz var. Bu dizinin ilk elemanında, kendisine ayrı olarak oluşturulmuş bir nesnenin iletildiği atama operatörü çağrılır (operatör bildirilmemesine rağmen). Sizce bundan sonra bu dizinin ilk elemanında ne olmalı? Bence nesne kalmalı.
Bunu ayrıca, açıkça bildirilmiş bir kopya oluşturucunun bu testte hiçbir şeyi değiştirmeyeceğini yazdım.
Apaçık olanı nasıl görmezsin.
bir nesne dizisinin bir öğesine bir işaretçi yerleştirilir ve bir işaretçi dizisinin bir öğesine bir nesne yerleştirilir.. bu gerçekten normal mi?
ilk durumda, nesnenin işaretçisi diziye gider; ikinci durumda, kopya oluşturucu çalışmalıdır, bu işlemler nasıl eşdeğer olabilir?
Bir kopya oluşturucu değil, bir atama operatörü, ancak bunlar önemsiz şeyler.
Nesne dizisinin bir öğesi "işaretçi" içermez. Bir nesne dizisinin bir elemanı tam olarak bir nesne içermelidir.
İlk durumda - tam olarak bir dizi nesneniz var, ne tür "işaretçiler"?
Bir dizi nesnemiz var. Bu dizinin ilk elemanında, kendisine ayrı olarak oluşturulmuş bir nesnenin iletildiği atama operatörü çağrılır. Sizce bundan sonra bu dizinin ilk elemanında ne olmalı? Bence nesne kalmalı.
Ve ... genel olarak orada her şey kötü))) Bir dizi otomatik işaretçi ve dinamik olarak oluşturulan bir nesne de buna itilir. Sonra 3 nesne, ikisi otomatik olarak silinecek ve biri sızdırılacak. Derlenirse.
Bunun gibi olmalı:
A* m_A[ 2 ];
böyle:
m_A[ 0 ] =GetPointer(a);
Ve sonunda şöyle:
Ve ... genel olarak orada her şey kötü))) Bir dizi otomatik işaretçi ve dinamik olarak oluşturulan bir nesne de buna itilir.
En sonunda!))
Nesne dizisinin bir öğesi tam olarak nesneyi içermelidir .
İlk durumda - tam olarak bir dizi nesneniz var, ne tür "işaretçiler"?
İşte bundan bahsediyorum! Neden ÇALIŞIYOR?
En sonunda!))
İşte bundan bahsediyorum! Neden ÇALIŞIYOR?
A şöyle bildirilirse:
A* m_A[ 2 ];
Tamam.
Ve öyle olsa bile:
A m_A[ 2 ];
O zaman derleme yapmamalı. Ya da derleyicide bir bug ya da derleyici her şeyi herkes için düşünmek zorunda değildir.
O zaman derleme yapmamalı. Ya da derleyicide bir bug ya da derleyici her şeyi herkes için düşünmek zorunda değildir.
Bingo!