
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
Typeid() maalesef değil ve şablonların gücü statik tanımlamada. Farklı görevler farklı yöntemlerle çözülür ve bir yöntemin kötü, diğerinin iyi olduğunu söylemek çevik bir varsayımdır.
Dinamik tanımlamaya ihtiyacım olduğunda bir vakam vardı. Evrensel tip dışında tüm çözümler çok hantaldı. Genel bir tür uygulayan bir sınıf aracılığıyla yapılmıştır.
Ama aynı zamanda bir problem. VS 2012'den bu yana STL'de (string) bir şeyler değişti ve oradan başlayarak derlenmeyecek. Henüz çözemedim.
X'ler, işaretçiler değil, bir sopayla kahkahalar.
Gönderimdeki ikinci bağlantıdaki sayfada şöyle diyor:
MQL4'te karmaşık tipte nesneleri dinamik olarak oluşturmak mümkündür. Bu, oluşturulan nesneye bir tanıtıcı döndüren new operatörü kullanılarak yapılır.
Tanımlayıcının boyutu 8 bayttır . Sözdizimsel olarak, MQL4'teki nesne tanımlayıcıları, C++'daki işaretçilere benzer.
Örnekler:
MyObject* hobject= new MyObject();
Yine, C++' dan farklı olarak, yukarıdaki örnekteki hobject değişkeni, belleğe bir işaretçi değil , bir nesnenin tanıtıcısıdır.
Yazımdaki ikinci bağlantıdaki sayfada şöyle diyor:
MQL4'te karmaşık tipte nesneleri dinamik olarak oluşturmak mümkündür. Bu, oluşturulan nesneye bir tanıtıcı döndüren new operatörü kullanılarak yapılır.
Tanımlayıcının boyutu 8 bayttır . Sözdizimsel olarak, MQL4'teki nesne tanımlayıcıları, C++'daki işaretçilere benzer.
Örnekler:
MyObject* hobject= new MyObject();
Yine, C++' dan farklı olarak, yukarıdaki örnekteki hobject değişkeni, belleğe bir işaretçi değil , bir nesnenin tanıtıcısıdır.
Dünden daha erken değil, bunları sordum. sınıf uygulama dosyasının arayüz dosyasından ayrılmasıyla ilgili destek sorusu. Ve cevabı aldı:
В MQL нет файла проекта, фактически им выступает mq4 файл, а программа обязана иметь точки входа (при их отсутствии выдаётся ошибка "event handling function not found"). Поэтому при разделении интерфейса от реализации класса, файлом-реализации и интерфейса должны быть mqh файлы.
Sonuç olarak, bu aslında mantıklı bir seçenek değil. Ne de olsa, sınıfın uygulandığı dosya, onu istemcilerden korumak için uygulamanın olduğu dosyadır. Ve hem bu hem de bu açıksa, yani. .mqh biçiminde, o zaman neden bunu yapıyorsunuz?
Dünden daha erken değil, bunları sordum. sınıf uygulama dosyasının arayüz dosyasından ayrılmasıyla ilgili destek sorusu. Ve cevabı aldı:
Sonuç olarak, bu aslında mantıklı bir seçenek değil. Ne de olsa, sınıfın uygulandığı dosya, onu istemcilerden korumak için uygulamanın olduğu dosyadır. Ve hem bu hem de bu açıksa, yani. .mqh biçiminde, öyleyse neden bunu yapıyorsunuz?
Bildirimi asla uygulamadan ayırmayın. Her şeyi başlık dosyasına yazarım. Bu çok daha uygun. İki dosyayı değil, bir dosyayı takip etmeniz gerekiyor. Sınıfta yalnızca üç yöntem olması iyidir. 100 olursa ne olur? İki dosyayı karşılaştırmak için eziyet çekiyorsun. Birinde yaz, diğerinde unut, vb...
Bölmenin gerekli olduğu tek bir durum vardır. Bu, iki veya daha fazla sınıfın karşılıklı olarak birbirine başvurduğu zamandır. Bu tür kararlardan kaçınılmalıdır. Bu, C++ ile ilgilidir. MQL'de bunun nasıl yapıldığını bilmiyorum.
Öğreticide ve özellikle burada kodlar:
Aşağıdaki alanlar vardır:
* işareti neden bir durumda sağda , diğerinde solda ?Öğreticide ve özellikle burada kodlar:
Aşağıdaki alanlar vardır:
* işareti neden bir durumda sağda , diğerinde solda ?Böyle yazılır. Önemli değil.
Ben kendim "*" operatörünü, sağındaki türün yanında (int*) ve solundaki değişkenin yanında başvuruyu kaldırırken (*pnVal) bir işaretçi belirlemek için yazıyorum.
Böyle yazılır. Önemli değil.
Ben kendim "*" operatörünü, sağındaki türün yanında (int*) ve solundaki değişkenin yanında başvuruyu kaldırırken (*pnVal) bir işaretçi belirlemek için yazıyorum.
Ben de öyle düşünmüştüm. Dikkatsiz bir programcı bir örnek yazmış gibi görünüyor.
Orada başka garip şeyler de var:
Bu, CItem sınıfına m_next nesne tanıtıcısının atandığı anlamına mı geliyor?
Öğreticide ve özellikle burada kodlar:
Aşağıdaki alanlar vardır:
* işareti neden bir durumda sağda , diğerinde solda ?Sağda ve solda değil, arada kalıyor.
Ben de öyle düşünmüştüm. Dikkatsiz bir programcı bir örnek yazmış gibi görünüyor.
Orada başka garip şeyler de var:
Bu, CItem sınıfına m_next nesne tanıtıcısının atandığı anlamına mı geliyor?
Bu , new operatörüyle bir örnek oluşturmanın gerekli olacağı anlamına gelir.