Hatalar, hatalar, sorular - sayfa 1736
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
belki biri ilgilenir, cevap servis masası:
Benim için çok ilginç! Lütfen Service Desk'in cevabını bir örnekle açıklayınız.
& == GetPointer(). * - hiçbirşey değişmedi.
Benim için çok ilginç! Lütfen Service Desk'in cevabını bir örnekle açıklayınız.
& == GetPointer(). * - hiçbirşey değişmedi.
belki biri ilgilenir, cevap servis masası:
Bu arada, geçen gün onlara herhangi bir veri türüne işaretçilerin tanıtılması hakkında bir teklif gönderdim. Ve bu saçma kısıtlama zaten yeterli.
* operatörünün aşırı yüklenmesini sağlamak güzel olurdu, aksi takdirde STL ile kimliği onsuz uygulamak imkansızdır, ayrıca bir typedef'i sadece geri çağırmalarda değil, tam olarak tanıtmak da güzel olurdu
hangi örneğe ihtiyacın var?
* ve &'dan ne istediğinizi. Basit ama görsel bir şey. Kolaylık görmek için.
İstediğimi yukarıda yazdım zaten.
GetPointer'ı (...) kullandığınız '&' operatörü ile kendiniz bir örnek düşünebilirsiniz, bu aslında kısa bir formdur.
'*' operatörlü bir örnek - anlamanıza yardımcı olup olmayacağını bilmiyorum:
{
int m_value;
public :
Iterator( const int val) : m_value(val) { }
int operator *() { return m_value; }
};
int main( int argc, char **argv) {
Iterator *_it = new Iterator( 5 );
int _val = **_it;
//---
return 0 ;
}
bu C++'da çalışır, ancak MQL'de m_value almak için bir alıcı yapmanız gerekir.
OBJ_CHART ChartRedraw(MainChartID)'nin yeniden çizim için uygun olmadığını Yardım'a ekleyin. ChartRedraw(ObjChartID) gerekiyor.
Bu nedenle, Yardım'daki örnek yanlıştır.
Lütfen ölçeği N <= 5 (çubuğun altındaki alanın boyutu = 2^N) ile sınırlamayın.
Kene geçmişine daha detaylı bakabilmek için bu gereklidir (ve amaca uygun hale gelmiştir).
{
public :
const int a;
A( int c = 0 ) : a(c) {}
virtual int f()
{
Print ( __FUNCTION__ );
return ( this .a);
}
};
class B : public A
{
public :
const int b;
B( int c = 0 ) : A(c), b( this .f()){}
virtual int f()
{
Print ( __FUNCTION__ );
return ( this .a);
}
};
void OnStart ()
{
B b;
A* a = new B;
delete a;
}
Sonuç
2016.10 . 18 09 : 35 : 01.981 Test14 (GBPUSD,M1) B::f
Neden A::f değil de B::F döndürüyor? Komut dosyası, f çağrısı yapıcının gövdesinin yürütülmesinden ÖNCE gerçekleşecek şekilde yazılmıştır (kalın harflerle vurgulanmıştır). Ama bu noktada, A temel sınıfının yapıcısı zaten çağrıldı.Bu nedenle, this.f(), öyle görünüyor ki, özellikle temel sınıfa atıfta bulunmalıdır, B yapıcısı henüz yürütülmedi. Akıl yürütme/durmalardaki hatanın ne olduğunu açıklamanızı rica ediyorum.