MQL4/5 kullanarak bir e-postadan veya SMS'den bilgileri nasıl okuyabileceğinizi söyleyin. Örneğin. E-postaya bilgi sinyali alıyorum, danışman pozisyonu okuyor ve açıyor / kapatıyor .
class CBar { };
class CFoo : public CBar { };
voidOnStart ()
{
CBar bar;
//--- динамическое приведение типа указателя *bar к указателю *foo разрешено
CFoo *foo = dynamic_cast <CFoo *>(&bar); // критической ошибки выполнения не возникнет Print (foo); // foo=NULL //--- попытка явного приведения ссылки объекта типа Bar к объекту типа Foo запрещено
foo=(CFoo *)&bar; // возникнет критическая ошибка выполненияPrint (foo); // эта строка не будет выполнена
}
Basit yapılara (aptalca memcpy tarzında) kopyalamanın mümkün olduğunu hatırlıyorum, ancak basit bir yapıya sahip değilim.
MetaTrader 5 platformunun yeni sürümü build 1640: kendi finansal araçlarınızı oluşturma ve test etme
MQL5: Yapıların ve sınıfların nesneleri için örtük kopya operatörünün otomatik oluşturulması eklendi. Artık derleyici, nesneler için b=a gibi basit gösterimler yazmanıza izin veren kopyalama operatörlerini otomatik olarak oluşturur:
class Foo
{
int value;
public :
string Description( void ){ returnIntegerToString (value);};
//--- конструктор по умолчанию
Foo( void ){value=- 1 ;};
//--- конструктор с параметрами
Foo( int v){value=v;};
};
//+------------------------------------------------------------------+//| структура, содержащая объекты типа Foo |//+------------------------------------------------------------------+struct MyStruct
{
string s;
Foo foo;
};
//+------------------------------------------------------------------+//| Script program start function |//+------------------------------------------------------------------+voidOnStart ()
{
//---
MyStruct a,b;
Foo an_foo( 5 );
a.s= "test" ;
a.foo=an_foo;
Print ( "a.s=" ,a.s, " a.foo.Description()=" ,a.foo.Description());
Print ( "b.s=" ,b.s, " b.foo.Description()=" ,b.foo.Description());
//---Print ( "b=a" );
b=a;
//---Print ( "a.s=" ,a.s, " a.foo.Description()=" ,a.foo.Description());
Print ( "b.s=" ,b.s, " b.foo.Description()=" ,b.foo.Description());
/*
Результат выполнения;
a.s=test a.foo.Description()=5
b.s= b.foo.Description()=-1
b=a
a.s=test a.foo.Description()=5
b.s=test b.foo.Description()=5
*/
}
Örtük operatörde, nesnelerin üye bazında kopyalanması gerçekleştirilir.
Üye bir nesneyse, o nesne için uygun kopyalama operatörü çağrılır.
Üye bir nesne dizisiyse, her öğe için uygun kopyalama operatörünü çağırmadan önce, alıcı dizi ArrayResize aracılığıyla istenen boyuta yükseltilir veya küçültülür.
Üye basit türden bir diziyse, kopyalamak için ArrayCopy işlevi kullanılır.
Üye bir nesnenin işaretçisiyse, işaret ettiği nesne değil işaretçinin kendisi kopyalanır.
İsteğe bağlı olarak, davranışı geçersiz kılabilirsiniz ve örtük kopyalama operatörü yerine .
Teşekkürler, şimdi açık. Mutlu muyum onu bile bilmiyorum. Eski kod sonları ile uyumluluk. İyi bir şekilde, bu tür önemli değişikliklerle (derleme anahtarları veya #pragma aracılığıyla) yeni işlevselliği bir şekilde zorla etkinleştirmeniz gerekir.
Örneğin benim auto_ptr'im:
template < typename T_>
class auto_ptr
{
public :
T_ *p;
void reset() { if ( this .p) deletethis .p; this .p= NULL ;}
auto_ptr( void *ptr= NULL ): p(ptr) {}
~auto_ptr() { this .reset();}
void swap(auto_ptr<T_> &other)
{
T_ *buf = this .p;
this .p = other.p;
other.p = buf;
}
};
Şimdi, auto_ptr'nin yeni kodda kopyalanabileceği ortaya çıktı (kopyalama operatörü/kurucu susturulmadıkça), aynı işaretçinin birden çok silinmesiyle sonuçlanır.
Varsayılan kopyalama operatörü tetiklenir.
Zor değilse, nerede okumalı?
MQL4/5 kullanarak bir e-postadan veya SMS'den bilgileri nasıl okuyabileceğinizi söyleyin. Örneğin. E-postaya bilgi sinyali alıyorum, danışman pozisyonu okuyor ve açıyor / kapatıyor .
Varsayılan kopyalama operatörü tetiklenir.
Bunu rıhtımlarda bile buldum (alttan 3. satıra dikkat):
https://www.mql5.com/ru/docs/basis/types/casting
Basit yapılara (aptalca memcpy tarzında) kopyalamanın mümkün olduğunu hatırlıyorum, ancak basit bir yapıya sahip değilim.
Basit yapılara (aptalca memcpy tarzında) kopyalamanın mümkün olduğunu hatırlıyorum, ancak basit bir yapıya sahip değilim .
MQL5 değişti.
MQL5 değişti.
Ticaret, otomatik ticaret sistemleri ve ticaret stratejilerinin test edilmesi hakkında forum
MetaTrader 5 platformunun yeni sürümü build 1640: kendi finansal araçlarınızı oluşturma ve test etme
MetaQuotes Yazılım A.Ş. , 2017.07.19 18:03
MetaTrader 5 platformunun yeni sürümü build 1640: kendi finansal araçlarınızı oluşturma ve test etme
Örtük operatörde, nesnelerin üye bazında kopyalanması gerçekleştirilir.
İsteğe bağlı olarak, davranışı geçersiz kılabilirsiniz ve örtük kopyalama operatörü yerine .
fxsaber
Teşekkürler, şimdi açık. Mutlu muyum onu bile bilmiyorum. Eski kod sonları ile uyumluluk. İyi bir şekilde, bu tür önemli değişikliklerle (derleme anahtarları veya #pragma aracılığıyla) yeni işlevselliği bir şekilde zorla etkinleştirmeniz gerekir.
Örneğin benim auto_ptr'im:
Şimdi, auto_ptr'nin yeni kodda kopyalanabileceği ortaya çıktı (kopyalama operatörü/kurucu susturulmadıkça), aynı işaretçinin birden çok silinmesiyle sonuçlanır.
Dosya MQL5\Include\ Controls \ SpinEdit . mqh
int MaxValue (void) const { return(m_min _value ); }
MT4 nasıl indirilir?
mt4setup.exe dosyasını indiriyorum, kuruyorum ve platform mt5 kuruluyor. mt4 nereden alınır
mt4setup.exe dosyasını indiriyorum, kuruyorum ve platform mt5 kuruluyor. mt4 nereden alınır