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
Her nasılsa, çoklu sarmanın işlemci tarafından kod işleme hızını etkileyip etkilemediği sorusu tamamen göz ardı edildi ( 2011.04.04 21:58 )
Soru yanlış görünüyorsa, aptalca vb. - yaz.
Her nasılsa, çoklu sarmanın işlemci tarafından kod işleme hızını etkileyip etkilemediği sorusu tamamen göz ardı edildi ( 2011.04.04 21:58 )
Soru yanlış görünüyorsa, aptalca vb. - yaz.
Soru oldukça mantıklı, cevap hayır, etkilemiyor .
Anladım! Beni korudun! Şimdi iç içe yöntemleri çifte zevkle damgalayacağım :)
Urain , örnek için teşekkürler! Programlama deneyiminiz olana kadar, bunun için doğru kodu kontrol edip yazmak için kendinizi tahmin etmek bazen zordur. Ve burada her şey açık ve anlaşılır.
Soru. Bir alt sınıfın örneği kendini silebilir mi? Başka bir deyişle, böyle bir şey işe yarar mı:
Derleyici bu yapıdan şikayet etmez.Soru. Bir alt sınıfın örneği kendini silebilir mi? Başka bir deyişle, böyle bir şey işe yarar mı:
Derleyici bu yapıdan şikayet etmez.Her şeyi doğru anlarsam, işaretçileri sevmiyorum (ve onları özellikle MQL5'te sık kullanmıyorum), o zaman çocuk böyle görünmelidir.
Dolayısıyla fikre göre uygulama şu şekilde olacaktır.
not
Ancak derleyicinin bunu gözden kaçırması bir hata (veya derleyicinin açıklanmayan bir özelliği) değil mi?
Tabii ki, soyundan gelenin gerekli sınıf olarak yuvarlandığı varsayılabilir, ancak iki sınıfın yapıları ve işlevleri çok farklı olabilir. Ve sonra ne?
C_A *pointer= new C_B;
Ve ilk kodun bu şekilde kullanılmasıyla, derleyici tarafından yapılan tüm kontrollerin geçmesine rağmen (ve olası sorunlara ipucu bile vermemesine rağmen) genellikle bir bellek sızıntısı ortaya çıkar.
Sonuç (anladığım kadarıyla bir bellek sızıntısı nedeniyle işaretçi nesnesi doğru şekilde silinmedi):
Her şeyi doğru anlarsam, işaretçileri sevmiyorum (ve onları özellikle MQL5'te sık kullanmıyorum), o zaman çocuk böyle görünmelidir.
C_A *pointer= new C_B;
sonra bu fikri Tetris'ten aldım ve benim için çok faydalı olduğu ortaya çıktı. Elbette bu hattı pervasızca kullanmak yanlış olur ama Tetris'te çözülen amaçlara benzer amaçlar için oldukça uygundur.Her nasılsa, çoklu sarmanın işlemci tarafından kod işleme hızını etkileyip etkilemediği sorusu tamamen göz ardı edildi ( 2011.04.04 21:58 )
Soru yanlış görünüyorsa, aptalca vb. - yaz.
Cevap mantıklı - ilkeller ne kadar basit ve mantıklı olursa, optimize edici o kadar verimli çalışacaktır.
Önemli olan aşırıya kaçmamak :)
Komut dosyası kodunu biraz değiştirdi:
Sorunlar
İyi bak. Üst sınıfta genel değiştirici ile void Del(C_A *p) yöntemini bildirdim. Bu, alt sınıfın bu yöntemi tamamen devraldığı anlamına gelir. Bu nedenle aynı metodu tekrardan alt sınıf içinde bildirmeme gerek yok. Bu fikre gelince, Tetris'ten casusluk yaptım ve benim için çok faydalı olduğu ortaya çıktı. Elbette bu hattı pervasızca kullanmak yanlış olur ama Tetris'te çözülen amaçlara benzer amaçlar için oldukça uygundur.
Atadaki void Del(C_A *p) öğesinin herhangi bir çocuğun işaretçisini silmek için yeterli olacağını varsaysak bile, kullanmak için bir neden göremiyorum.
C_A *pointer= new C_B;
not
Böyle bir yaklaşıma ihtiyaç duyulduğunu hayal edebileceğim tek yer, aynı sınıfın torunları olan bir dizi farklı nesnenin yaratılmasıdır (seçenek olarak, "temel" sınıf türünde bir parametreyi bir işleve veya prosedür).