Hatalar, hatalar, sorular - sayfa 2256

 
Nikolai Semko :

1881

1886 yapısından beri düzeltildi.

Nikolay Semko :
Ve ilerisi. Doğru, emin değilim.
Bir yıl önce, bu tür sorunlar yok gibiydi.

Sadece sorunu görmedin.

Aslında dejenere CopyTime, CopyOpen, CopyHigh vb . olan iTime , iOpen, iHigh vb. işlevleri eklediğimizde, en son verilerin henüz yüklenmediği ve işlevlerin bir sonuç döndürdüğü durumlar olduğunu gördük. i-Functions durumunda, bunun kritik olduğu ortaya çıktı.

Şimdi her şey doğru ve hızlı bir şekilde çalışmalı. Resmi yapıyı bekleyin.

 
Slava :

1886 yapısından beri düzeltildi.

Sadece sorunu görmedin.

Aslında dejenere CopyTime, CopyOpen, CopyHigh vb. olan iTime, iOpen, iHigh vb. fonksiyonları eklediğimizde, en son verilerin henüz yüklenmediği ve fonksiyonların bir sonuç döndürdüğü durumlar olduğunu gördük. i-Functions durumunda, bunun kritik olduğu ortaya çıktı.

Şimdi her şey doğru ve hızlı bir şekilde çalışmalı. Resmi yapıyı bekleyin.

Anladım teşekkürler.
Yani mevcut mevcut yapı 1881 mi? Yoksa bir şey mi kaçırdım?
 
Nikolai Semko :
Anladım teşekkürler.
Yani mevcut mevcut yapı 1881 mi? Yoksa bir şey mi kaçırdım?
Mevcut mevcut yapı 1881
 

Yürütme sırasında hata:

 class A {
public :
         template < typename T>
        A* A::f( T )
        {
                 int size = ArraySize ( i ) + 1;
                 Print ( __FUNCTION__ , ":" , size );
                 if ( ArrayResize ( i, size ) == - 1 )
                         Print ( __FUNCTION__ , ":Error:" , GetLastError ());
                 return & this ;
        }
         template < typename T>
        A* A:: operator+ ( T t ) { return f( t ); }
         int i[];
};
void OnStart ()
{
        A a;
        a + 0 + 0 ;
}

Sonuç: Beklenen:

A::f<int>:1 A::f<int>:1
A::f<int>:753790661 A::f<int>:2
A::f<int>:Hata:4007

Ve bu yüzden:

 void OnStart ()
{
        A a;
        a.f( 0 ).f( 0 );
}

iyi. Fark ne? Dizi boyutu neden birdenbire 753790660'a (bir yerine) eşit oldu ve sonuç olarak bellek aniden sona erdi (4007)? MT5\1881\32

Üstelik... ilk varyantta sınıftan tam anlamıyla üç karakteri silerseniz, sonuç da normal olacaktır.

 
A100 :

Yürütme sırasında hata:
Dizi boyutu neden birdenbire 753790660'a (bir yerine) eşit oldu ve sonuç olarak bellek aniden sona erdi (4007)? MT5\1881\32

MT5\1881\64
hata ayıklama tamam.
yayın - derleme hatası "Dahili derleyici hatası".

 

Derleme sırasında hata:

 class A {
         int A::f() { return NULL ; } //нормально
        A  *A::g() { return NULL ; } //Error: object of 'A' cannot be returned, copy constructor 'A::A(const A &)' not found
};
MT5\1881\32
 
A100 :

Neden {} sınıfının içine böyle yazalım (::)?

 

Derleme sırasında hata:

 class A {
         int A::f();
         template < typename T>
        A*  A::g();
};
int A::f() { return NULL ; } //нормально
template < typename T>
A*  A::g() { return NULL ; } //Error: 'g' - function already defined and has different type
 
fxsaber :

Neden {} sınıfının içine böyle yazalım (::)?

Neden?

 class A {
         void A::f() {} //нормально
};
Bu şöyle... Yazmak istiyorum... İstiyorum - hayır
 
A100 :

Neden?

Nedeni bu değil.

Bu şöyle... Yazmak istiyorum... İstiyorum - hayır
bu, kodu okurken çok yardımcı olur ve bazı durumlarda hataların önlenmesine yardımcı olur.
Neden: