MQL5'te OOP hakkında sorular - sayfa 18

 

Söyle bana, farklı olan ne?
Bunun gibi bir nesne veya işaretçi oluşturma

 class CClass
{
   public :


}CObj, *pCObj;

klasik yaratılıştan

CClass  CObj;
CClass *CObj;

Profesyonellerde farklı davranışlar fark ettim, neden ilginç hale geldi, ancak literatür aramak için ilk arama yöntemini ne diyeceğimi bile bilmiyorum.

 
Roman :

Söyle bana, farklı olan ne?
Bunun gibi bir nesne veya işaretçi oluşturma

klasik yaratılıştan

Profesyonellerde farklı davranışlar fark ettim, neden ilginç hale geldi, ancak literatür aramak için ilk arama yöntemini ne diyeceğimi bile bilmiyorum.

MQL'de olan ile profesyonellerde olan arasında hiçbir fark yoktur.

 
Koldun Zloy :

MQL'de olan ile profesyonellerde olan arasında hiçbir fark yoktur.

Soruyu anlamadın. Fark dillerde değil, bildirimlerin kendisindedir.
İlk örnekten nesnenin davranışını anlamıyorum.
Tahminim, nesne yığında da oluşturulur ve sınıf yıkıcı çağrıldıktan sonra yok edilir ve nesne kodda global olarak görünür.
Açıklığa kavuşturmak istediğim buydu, ilk yöntemin davranışı nedir?
Tahminlerim doğru mu?
Google'da aratmak için buna ne denir?

Fark ettiğimden (mql'de değil, C++'da), farklı bir nesne oluşturursanız, kullanılan yöntemlerdeki davranış beklendiği gibi değişmez.

 
Roman :

Soruyu anlamadın. Fark dillerde değil, bildirimlerin kendisindedir.
İlk örnekten nesnenin davranışını anlamıyorum.
Tahminimce, nesne yığında da oluşturulur ve sınıf yıkıcı çağrıldıktan sonra yok edilir ve nesne kodda global olarak görünür.
Açıklığa kavuşturmak istediğim buydu, ilk yöntemin davranışı nedir?
Tahminlerim doğru mu?
Google'da aratmak için buna ne denir?

Fark ettiğimden beri, bir nesneyi farklı şekilde yaratırsanız, kullanılan yöntemlerdeki davranış beklendiği gibi değişmez.

soruyu anladım. Reklamlarda hiçbir fark yoktur.

 
Koldun Zloy :

soruyu anladım. Reklamlarda hiçbir fark yoktur.

Fark büyük olasılıkla kapsamdadır.
Bir dosyadaki ilk örnek her zaman global olarak görünür, ikinci örnek veya yeni bir fonksiyonda gizlenebilir.

 
Roman :

Fark büyük olasılıkla kapsamdadır.
Bir dosyadaki ilk örnek her zaman global olarak görünür, ikinci örnek veya yeni bir fonksiyonda gizlenebilir.

Burada fark, nasıl beyan ettiğinizde değil, nerede.

 
Koldun Zloy :

Burada fark, nasıl beyan ettiğinizde değil, nerede.

Ben de mantıksal akıl yürütme yöntemiyle aynı sonuca vardım :))
Düşüncelerimin doğru olduğundan emin olmak istedim. Açıklama için teşekkürler.

 
Vladimir Simakov :
   lotDigits= MathMax (-( int ) MathFloor ( MathLog10 (lotStep)), 0 );

kontrol edildiğinde, ondalık basamak sayısını hesaplamak için kullanılan bu kod doğru çalışmıyor

Prensip olarak benimki de her zaman doğru düşünmüyor, biliyorum ki

kontrol edilecek komut dosyası:

 void OnStart ()
  {
   double l= 0.0 ;
   for ( int i= 0 ; i< 100 ; i++)
     {
       Print (l, " ---> LotDigits / MyDigits = " ,LotDigits(l), " / " ,MyDigits(l));
      l+= 0.003 ;
     }
  }
//+------------------------------------------------------------------+
int LotDigits( double value)
  {
   return ( MathMax (-( int ) MathFloor ( MathLog10 (value)), 0 ));
  }
//+------------------------------------------------------------------+
int MyDigits( double v)
  {
   long i= 10000000 ,k= long (v/ 0.0000001 );
   int d= 0 ;
   while (d< 7 && k%i> 0 )
     {
      i/= 10 ;
      d++;
     }
   return (d);
  }
//+------------------------------------------------------------------+

komut dosyası günlüğü eklendi

Dosyalar:
20190829.log  9 kb
 
Roman :

Söyle bana, farklı olan ne?
Bunun gibi bir nesne veya işaretçi oluşturma

klasik yaratılıştan

Profesyonellerde farklı davranışlar fark ettim, neden ilginç hale geldi, ancak literatür aramak için ilk arama yöntemini ne diyeceğimi bile bilmiyorum.

Şahsen ben de pek bir fark görmüyorum, ancak bu tür yazıların tarzı bana oldukça tehlikeli görünüyor.

İşaretçi - oluşturulduğunda hemen NULL'a veya gerçek bir nesnenin işaretçisine eşit olmalıdır. Bu işaretçinin saklanacağı küçük bir bellek alanı oluşturulur - ya sıfır değeriyle ya da normal bir işaretçiyle.

Bir nesnenin bildirimi - tüm nesneyi oluşturur, yapıcı çağrılırken bellek ayrılır.

 
Igor Makanu :

kontrol edildiğinde, ondalık basamak sayısını hesaplamak için kullanılan bu kod doğru çalışmıyor

Prensip olarak benimki de her zaman doğru düşünmüyor, biliyorum ki

kontrol edilecek komut dosyası:

komut dosyası günlüğü eklendi

Çok fazla olmayacağına dair bir varsayımım var, örneğin 0.15. En azından ben duymadım. Aniden ne zaman olduğunu görürsem, tekrar yapacağım.
Neden: