Hatalar, hatalar, sorular - sayfa 1892
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
Böyle bir soru daha
Koruyucu çalışma.
lütfen programlamada koruyucunun ne olduğunu açıklayın
Evet, sorunuzu gösteren bir örnek:
ve çıktı:İlk olarak, çözülmemiş dökümü aşağıdan yukarıya doğru kontrol edip NULL alıyoruz. Pekala.
Sonra bir CLASS2 nesnesi yaratırız, ona üst sınıfa bir referans atarız (burada dinamiklerde ortamın CLASS2 nesnesinin yerel türünün meta bilgisinde saklandığını bildiğini anlamak önemlidir). Daha sonra (sadece sorunuz) CLASS1 bağlantısından CLASS2'ye dinamik olarak (orijinal nesnenin meta bilgisine dayalı olarak dönüştürme hakkını kontrol ederek) yayınlıyoruz.
Döküm sonucunu kontrol ediyoruz ve i = 1 değişkenine yazıyoruz. Son olarak, başlangıçta oluşturulan nesneye atıfta bulunarak i değerini gösteriyoruz.
Her şey doğru ve spesifikasyona göre çalışıyor (C++'ın kendi spesifikasyonuna dynamic_cast dahil).
Açıklama için teşekkürler, şimdi MQL'de tip döküm hakkında net görünüyor)) Ama o zaman dinamik_cast'in neden yaratıldığı açık değil, eğer her durumda aşağıdan yukarıya yayın yapamıyorsak ve yukarıdan aşağıya onsuz yapabiliriz. dinamik_cast ? Belki burada bazı incelikler vardır ve ben onları anlamadım?
Kodu ve açıklamamı tekrar okuyun lütfen.
Ayrıca, döküm hoparlörünün, orijinal olarak oluşturulan nesnenin meta bilgisine dayanarak, dökümü aşağıdan yukarıya doğru nasıl güvenli bir şekilde yükseltebileceğini gösterir. Bir çocuktan bir nesne oluşturulmuşsa, daha sonra üst sınıfın bir referansına dönüştürülürse, daha sonra meta-bilgiye dayanarak (orijinal nesne gerçekten bir çocuktur), bu referans güvenli bir şekilde bir çocuğa dönüştürülebilir.
Genellikle, çeşitli torunlara ait nesneler bir diziye/üst sınıfa yapılan başvurular listesine eklendiğinde ve daha sonra alınıp bir veya başka bir torununa güvenli bir şekilde yayınlandığında kullanılır. Alım NULL olarak değerlendirilirse, nesne istenen alt öğe değildir ve işlenmemelidir.
Kodu ve açıklamamı tekrar okuyun lütfen.
Ayrıca, döküm hoparlörünün, orijinal olarak oluşturulan nesnenin meta bilgisine dayanarak, dökümü aşağıdan yukarıya doğru nasıl güvenli bir şekilde yükseltebileceğini gösterir. Bir çocuktan bir nesne oluşturulmuşsa, daha sonra üst sınıfın bir referansına dönüştürülürse, daha sonra meta-bilgiye dayanarak (orijinal nesne gerçekten bir çocuktur), bu referans güvenli bir şekilde bir çocuğa dönüştürülebilir.
Genellikle, çeşitli torunlara ait nesneler bir diziye/üst sınıfa yapılan başvurular listesine eklendiğinde ve daha sonra alınıp bir veya başka bir torununa güvenli bir şekilde yayınlandığında kullanılır. Alım NULL olarak değerlendirilirse, nesne istenen alt öğe değildir ve işlenmemelidir.
Kodu okudum, ama öyle mi:
CLASS2 *my_ptr2= dynamic_cast <CLASS2 *>(my_ptr);
buna benzer değil:
dynamic_cast kullanarak kod yürütürken bir hata almamamız dışında, dynamic_cast kullanmanın inceliklerini yakalayamıyorum. dynamic_cast , hata durumunda NULL döndürür
Kodu okudum, ama öyle mi:
buna benzer değil:
dynamic_cast kullanarak kod yürütürken bir hata almamamız dışında, dynamic_cast kullanmanın inceliklerini yakalayamıyorum. dynamic_cast , hata durumunda NULL döndürür
C++'dan dymanic_cast özelliklerini google'a tavsiye ederim.
Bu banallik.
PC kaynaklarını buluta dağıtırken, oyuna başlarken bir kilitlenme meydana geliyor - oyun " Call of Duty: Black Operasyonlar III "çökmeler - 1 ajan dahil oldu. Aracının minimum önceliği vardı - 16'dan 3.5 gigabayt bellek tüketti - genel olarak herhangi bir sorun olmamalıydı. Etkin olmayan ajanlarla oyun normal şekilde oynandı. Ajanlar için test edildi mi? diğer programlarla uyumluluk?
Nedense, oyuncakta bir hata olabileceği fikri hemen geldi ve program> 4 GB adres alanına yüklendiğinde 64 bit makinelerde çalışmanın özellikleriyle ilgiliydi.
Nedense, oyuncakta bir hata olabileceği fikri hemen geldi ve program> 4 GB adres alanına yüklendiğinde 64 bit makinelerde çalışmanın özellikleriyle ilgiliydi.
Onlar. Bu hipotezi test etmek için RAM'i 4 gigabayttan fazla doldurmanız ve oyuna başlamanız gerekiyor - oğlumun nasıl yeterince oynadığını deneyeceğim.