Hatalar, hatalar, sorular - sayfa 49

 

Derleyici neden int ve color arasındaki farkı görmüyor.

   void               CreateLabel( int x, int y, color COLOR);   
   void               CreateLabel( int x, int y, int n);

Fonksiyonu yeniden tanımlıyorum, yemin ediyor (dikkatlice pedalları karıştırıyorum diyor).

'CreateLabel' - ambiguous call to overloaded function with the same parameters
varsayılan parametreler olsaydı iyi olurdu, aksi takdirde belirsizlik olmaz, geçirilen parametrenin türünü belirleyin ve devam edin.
 
Urain :

Derleyici neden int ve color arasındaki farkı görmüyor.

Fonksiyonu yeniden tanımlıyorum, yemin ediyor (dikkatlice pedalları karıştırıyorum diyor).

varsayılan parametreler olsaydı iyi olurdu, aksi takdirde belirsizlik olmaz, geçirilen parametrenin türünü belirleyin ve devam edin.
bu durumda, derleyici aynı adla iki işlev yarattığınıza ve iletilen parametrelerin bununla hiçbir ilgisi olmadığına yemin eder.
 
sergey1294 :
bu durumda, derleyici aynı adla iki işlev yarattığınıza ve iletilen parametrelerin bununla hiçbir ilgisi olmadığına yemin eder.

Bu durumda, "aşırı yük" kelimesinin ne anlama geldiğini okuyun.

Aynı zamanda ZY kuyusu ve " fonksiyon aşırı yüklenmesi ".

Документация по MQL5: Основы языка / Функции / Перегрузка функций
Документация по MQL5: Основы языка / Функции / Перегрузка функций
  • www.mql5.com
Основы языка / Функции / Перегрузка функций - Документация по MQL5
 
Urain :

Yazı kardeşliğine soru, hata değil, bug değil, kimin neyi teklif edeceği sorusu...

Sınıf içindeki işaretçinin adını almak istiyorum, ancak bir şekilde yapışmıyor.

Aslında mesele şu ki, dize adının grafik nesnesine otomatik olarak atanmasını istiyorum.

Ve bu, işaretçiye hala bir dizgeye bir isim verin, genel olarak uygun değil.

Bir sınıf yönteminden bir grafik nesnesi ayarlarken, işaretçiye bağlı olarak adın otomatik olarak verilmesi gerekli midir?

Bunu henüz nasıl yapacağımı bilmiyorum, sanırım onu dünyayla birlikte parçalayacağız.


Teoride, bir nesneye otomatik olarak bir isim atamanın iki ana yolu vardır (uygulandığında temanın çeşitli varyasyonları ile):

1. İsmin oluşumu numaralı bir listeye dayanmaktadır.

Bir nesneye bir ad atamaktan ayrı bir sınıf sorumludur ve ayrıca "numaralayıcıları" (tüm nesneler veya ayrı bir nesne grubu için olabilir) tutar.

Fikire göre, bu durumda isim (tercihen) temelinde oluşturulur: nesnenin türü, sembolün adı (çiftin para birimi), TF'nin metin tanımı ve seri numarası. nesne (sayılayıcıdan alınır).

Aynı zamanda, uygulamaya bağlı olarak, grafikte bir nesnenin varlığını takip edebilir veya yapamazsınız.

2. Ad, nesnenin oluşturulduğu tarih ve saate göre oluşturulur.

Bu yaklaşımdaki ad, nesne türü, sembol adı, TF metin ataması ve anahtar (tarih ve saat temelinde oluşturulan) temelinde oluşturulabilir.

not

İlk seçenekte (bence) nesne yönetiminin tam döngüsünü (oluşturma, değiştirme ve silme) sınıfta uygulamak daha akıllıca olacaktır...

 
Urain :

Bu durumda, "aşırı yük" kelimesinin ne anlama geldiğini okuyun.

Aynı zamanda ZY kuyusu ve " fonksiyon aşırı yüklenmesi ".

mümkün olduğunu bilmiyordu.
 
sergey1294 :
bunun mümkün olduğunu bilmiyordu.

Çok biçimlilik ve aşırı işlev yüklemesi, OOP'nin temelleridir ve kendine saygılı herhangi bir dilde mevcut olmalıdır.

polimorfizm

Polimorfizm, aynı ada sahip bir fonksiyonun (yöntemin), bu yöntem çağrılırken hangi sınıf nesnesinin kullanıldığına bağlı olarak farklı bir program koduna (polimorfik kod) karşılık geldiği bir olgudur. Yöntem imzasının zorunlu olarak korunması ile alt sınıftaki ata sınıfın yönteminin uygulanması değiştirilerek çok biçimlilik sağlanır. Bu, ata sınıfın arabiriminin değişmeden kalmasını sağlar ve koddaki yöntemin adını farklı sınıflarla bağlamanıza izin verir - çağrının yapıldığı sınıftan nesneden, o sınıftan verilen adla yöntem alınır . Bu mekanizma, derleme zamanında oluşan statik (erken) bağlamanın aksine dinamik (veya geç) bağlama olarak adlandırılır.

İşlev aşırı yüklemesi

Prosedürlerin ve işlevlerin aşırı yüklenmesi - aynı adı taşıyan alt rutinleri kullanma yeteneği: programlama dillerinde prosedürler veya işlevler.


Standart ticaret sınıfı kitaplığından bir örnek, sınıf Hesap Bilgileri :

 double MarginCheck( const string symbol, ENUM_POSITION_TYPE trade_operation, double volume) const ;
double MarginCheck( const string symbol, ENUM_ORDER_TYPE trade_operation, double volume) const ;
 
ddd06 :

Uzun süre saygın MetaQuotes ile konuştum ve onlara bir aksaklıkları olduğunu kanıtladım ve bana bir aksaklık olmadığını söylediler.

Ancak ben kendimle kaldım ve cemiyete sormamı tavsiye ettiler.

Yani Türkiye'nin değerlerini benimseyen bir hindi ve bir danışman var.

EURUSD için test cihazını 07/01/2010 ile 07/02/2010 M1 dönemi arasında piyasaya sürüyoruz

Günlüğe bakıyoruz ve bir arabelleğin değerlerinin değiştiğini, diğerinin değişmediğini görüyoruz.

Bu bir saat kadar devam ediyor sonra ikinci tampon canlanıyor ama hindinin değerlerine bakarsanız onunla uyuşmuyor.

Hesabı değiştirmeyi ve geçmişi indirmeyi bile denedim ama yardımcı olmadı.

İşte rar 90mb http://dl.dropbox.com/u/6290215/MetaTrader%205%201111.rar içindeki terminalime bir bağlantı, her şey orada ayarlandı

Peki, ekteki danışman ile gösterge

Hatalı bir kod gönderdiniz. Doğal olarak bu kodunuz hatalı bilgi üretmektedir. Aynı zamanda, her seferinde yeni kod ve her seferinde bir hata vererek, hatayı düzeltme konusundaki yorumlarımızı görmezden geldiniz.
 
Urain :

Derleyici neden int ve color arasındaki farkı görmüyor.

Fonksiyonu yeniden tanımlıyorum, yemin ediyor (dikkatlice pedalları karıştırıyorum diyor).

varsayılan parametreler olsaydı iyi olurdu, aksi takdirde belirsizlik olmaz, geçirilen parametrenin türünü belirleyin ve devam edin.
Gerçekten de bir sorun var - anlayacağız.
 
İdrar, yazı için teşekkürler. Hata düzeltildi.
 
stringo :
Hatalı bir kod gönderdiniz. Doğal olarak bu kodunuz hatalı bilgi üretmektedir. Aynı zamanda, her seferinde yeni kod ve her seferinde bir hata vererek, hatayı düzeltme konusundaki yorumlarımızı görmezden geldiniz.

Ancak, bana senkronizasyon olmaması gerektiğini ve kodun içine yerleştirilmesi gerektiğini söylerseniz...

Bunun yerine, her şeyin aynı olduğu konusunda ısrar ettin.

a TimeToString (time[0],TIME_DATE|TIME_MINUTES),"buf1-",buf1[1],"buf2-",buf2[1]); TimeToString(time[1],TIME_DATE|TIME_MINUTES),"buf1-",buf1[1],"buf2-",buf2[1]); yerine

Bu elbette bir hatadır, ancak özü etkilemedi.

Şimdi hindiyi bitirip ne kadar yanıldığımı kontrol edeceğim.

Yani, her şeyin eşleştiğini söylediniz ve danışman kodunu düzelttiniz. Ama aslında, hiçbir şey eşleşmiyor ve türkiye kodunu düzenlemeniz gerekiyor (içinde senkronizasyon oluşturun)