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
Bu durumda hiç de pahalı değil. Pahalı (erişirken bir başvuru için) sanal yöntemlere çağrılar.
kodun çizilmeye zamanı yoktu, işte yöntem:
Bunu şöyle yazabilirim (aramanın sonuçları bire birdir - yani her şeyi doğru yaptım):
şöyle sesleniyorum:
onlar. Seçenek 1 ve 2 hız açısından aynı mı olacak? .... elbette, if () içindeki dizenin uzunluğu kafa karıştırır ... okunması zor, belki de alışkanlıktan kaynaklanan kod
kodun çizilmeye zamanı yoktu, işte yöntem:
Bunu şöyle yazabilirim (aramanın sonuçları bire birdir - yani her şeyi doğru yaptım):
şöyle sesleniyorum:
onlar. Seçenek 1 ve 2 hız açısından aynı mı olacak? .... elbette, if () içindeki dizenin uzunluğu kafa karıştırır ... okunması zor, belki de alışkanlıktan kaynaklanan kod
Derleyici tarafından optimizasyon yapılmadan bire bir ise, ikincisi daha hızlıdır. Jo işaretçisi oluşturulmadı veya başlatılmadı.
not.
gereksiz. sadece jv'yi döndür
UPD: Yani kısaca?UPD: Yani kısaca?
JSONValue *jv, getInt() , getDouble() yöntemlerini içermez - bir hata olacaktır, JSONObject türü gereklidir - veya bu türe yayın yapılır
'getInt' - aşırı yüklerden hiçbiri işlev çağrısına uygulanamaz
Enum'u int'ye çevirmek istemiyorum - yorum yazamayacak kadar tembelim, o zaman neyi neyle karşılaştırdığımı anlayamıyorum ve numaralandırma sadece gözlerinizle okuyabildiğiniz için ilginç
Teşekkür ederim!
JSONValue *jv, getInt() , getDouble() yöntemlerini içermez - bir hata olacaktır, JSONObject türü gereklidir - veya bu türe yayın yapılır
'getInt' - aşırı yüklerden hiçbiri işlev çağrısına uygulanamaz
Enum'u int'ye çevirmek istemiyorum - yorum yazamayacak kadar tembelim, o zaman neyi neyle karşılaştırdığımı anlayamıyorum ve numaralandırma sadece gözlerinizle okuyabildiğiniz için ilginç
Teşekkür ederim!
JSONValue:public JSONObject'e sahip değil misiniz?
böyle çalışmıyor
github'dan kütüphane, işte ekli kaynaklar https://www.mql5.com/en/forum/85652/page72#comment_16758982
KB'de erken sürüm (indirilmemesi için) https://www.mql5.com/en/code/11134 - ayrıca bir kullanım örneği var
böyle çalışmıyor
github'dan kütüphane, işte ekli kaynaklar https://www.mql5.com/en/forum/85652/page72#comment_16758982
KB'de erken sürüm (indirilmemesi için) https://www.mql5.com/en/code/11134 - ayrıca bir kullanım örneği var
JSONObject* değil dönecek, her şey çalışma zamanında düşecek)))
Ve haklı olarak))) ASLA doğrudan tabandan halefine yayın yapamazsınız - bu UB'dir ( TANIMLANMAMIŞ DAVRANIŞ ), bunu profesyonellerde yaptığınızda hiçbir şey düşmez, ama ... (olasılıkla ilgili bir şaka var Tanrı kralı korusun iken infaz)))))
Doğru şekilde:
Ve size dynamic_cast'in maliyetini anlatmaya başlayan ilk kişi - bir soruyla öldürün, çalışma zamanı, oyuncu kadrosunun yanlış olduğunu nasıl biliyor?
1) Mdyaya... Burada UB'niz var. Mirasçıya atama yapamazsınız, ancak mirasçıya bir işaretçi oluşturarak ve ona doğru işaretçinin değerini atayarak bunu bir nevi aşmış olursunuz.
Her şey yolunda, ancak JSONObject olmayan bir * döndürdüğü anda her şey çalışma zamanında düşecek)))
Ve haklı olarak))) ASLA doğrudan tabandan halefine yayın yapamazsınız - bu UB'dir ( TANIMLANMAMIŞ DAVRANIŞ ), bunu profesyonellerde yaptığınızda hiçbir şey düşmez, ama ... (olasılıkla ilgili bir şaka var Tanrı kralı korusun iken idam)))))
2) Doğru: Ve size dynamic_cast'in maliyetini anlatmaya başlayan ilk kişi - bir soruyla öldürün, çalışma zamanı, oyuncu kadrosunun yanlış olduğunu nasıl biliyor?
1) UB yoktur ve nesnenin gerçek türü, kullanmadığınız jv.isObject() yöntemiyle kontrol edildiğinden, JSONObject* olmayan bir döndürüldüğünde bile hiçbir şey düşmez.
2) Kitaplığın bir sonraki sürümünde temel sınıf olarak JSONObject kullanan yeni bir veri türü görünürse, sizin örneğiniz çalışmayabilir.
1) UB yoktur ve nesnenin gerçek türü, kullanmadığınız jv.isObject() yöntemiyle kontrol edildiğinden, JSONObject* olmayan bir döndürüldüğünde bile hiçbir şey düşmez.
2) Kitaplığın bir sonraki sürümünde temel sınıf olarak JSONObject kullanan yeni bir veri türü görünürse, sizin örneğiniz çalışmayabilir.
JSONObject * CActor::getJSONObject( const string json) const { JSONParser parser; JSONValue *jv; JSONObject *jo = jv = parser.parse(json); if (jv != NULL && jv.isObject() && (EACTOR_TYPE)jo.getInt( "ActorType" ) == ActorType) return (jo); Print ( __FUNCTION__ + "parser error, json = " ,json); delete jv; delete jo; return ( NULL ); }
Vurgulanan. Yalnızca sonraki satırda kontrol et))) Örnekte, yaratıcısı ya, tam tersi, önce kontrol et, sonra yayınla)
UPD: dynamic_cast her iki yönde de çalışır)
UPD2: JSONObject'in halefi varsa neden düşsün?
Mdyaya... Burada UB var.
UB yoktur, mql cast, dynamic_cast'i de içerir. yanlış bir işaretçi durumunda sadece her şey düşecek.
Katılıyorum)) Bu artı benim)))