parametrenin tipinin (tip) ve parametrenin kendisinin iletildiği veya daha doğrusu ona bir işaretçi (void*).
parametre herhangi bir tipte olabilir (sınıf veya basit tip).
dersler tamam. ama basit koltuk değneği türleriyle.
sorun nedir, yasal boşluk: şablon<tür adı T> void SendReceiveParam(T¶m); .... { çift dval = 10; SendReceiveParam(dval); int değer = 10; SendReceiveParam(ival) ... // yapı nesnesine başvuru struct AAA { geçersiz operatör=(int a) {} }; AAA yapı_değeri; SendReceiveParam(struct_val); }
Örnek için teşekkürler! Ama kullanım amacını yakalamadım - kolaylık. Lütfen bir işaretçiyi nasıl kullanmak istediğinizi anlamak için SendParam'dan başka bir parça ekleyin, örneğin int.
memcpy kullanılabilir mi?
Numara )
Anlarsınız, SendParam'ı çağırmadan önce bazı hazırlıklar yaptıysanız, o zaman bir tür CInt sınıfına bir int sarmak daha kolaydır.
İşaretçi almanın yerel bir yolu yoktur. Yani, başlangıçta CInt sarmalayıcısını kullanmazsanız, işaretçileri kullanmanız çok zor olacaktır.
Artı tarafta, hazırlıkları da sen yapıyorsun.
{
//do something
}
{
int x = 5 ;
f(&x);
}
Adresi almak hazırlıktır. Bunun yerine
f (GetPtr (x)) peki, türü aktarmanız gerekiyor
diyelim ki sınıfta bir fonksiyon var
parametrenin tipinin (tip) ve parametrenin kendisinin iletildiği veya daha doğrusu ona bir işaretçi (void*).
parametre herhangi bir tipte olabilir (sınıf veya basit tip).
dersler tamam. ama basit koltuk değneği türleriyle.
şablon<tür adı T>
void SendReceiveParam(T¶m);
....
{
çift dval = 10;
SendReceiveParam(dval);
int değer = 10;
SendReceiveParam(ival)
...
// yapı nesnesine başvuru
struct AAA { geçersiz operatör=(int a) {} };
AAA yapı_değeri;
SendReceiveParam(struct_val);
}
int-pointer'lar aracılığıyla yasadışı yazmak?
Ve görevin bir koşulu girmedi. Görünüşe göre, örnekte bile elde etmek istediğiniz şeyin net bir formülasyonu yok.
Void* parametresine int için bir işaretçi iletmeye çalıştığımızı zaten iki kez yazdım.
( Memcpy varyantları, orta sınıf zaten önerildi, tekrarlamaya gerek yok)
Void* parametresine int için bir işaretçi iletmeye çalıştığımızı zaten iki kez yazdım.
(Memcpy seçenekleri, ara sınıf zaten önerildi, tekrara gerek yok)
sorun nedir, yasal boşluk:
şablon<tür adı T>
void SendReceiveParam(T¶m);
güzel ama uygun değil.
NULL ona geçirilemez
Kahretsin, en azından C sözdiziminde MQL'de de çalışması gereken bir kod örneğine sahip olabilir misiniz?
int a= 10 ;
SendParam(&a);
SendParam( NULL );
int a= 10 ;
SendParam(&a);
SendParam( NULL );
güzel ama uymuyor