Hatalar, hatalar, sorular - sayfa 2326

 
TheXpert :
şu anda bir kavram yok, nesne ve ona işaretçi bir yığın halinde karıştırılıyor

Bu sadece nesnelerde olduğu gibi işaretçilerle çalışmayı mümkün kılar, bu da bazı durumlarda * olmadan daha basit ve daha anlaşılır bir gösterim sağlar.

ve ayrıca, bu tür işaretçiler referans olarak kullanılabilir

Ve şimdi tüm bunları yok etmek ve açık bir sebep olmadan Taş Devri'ne geri dönmek öneriliyor.

 
A100 :

Ve şimdi tüm bunları yok etmek ve açık bir sebep olmadan Taş Devri'ne geri dönmek öneriliyor.

peki, bu senin fikrin. bence tam tersi

 
TheXpert :

peki, bu senin fikrin. bence tam tersi

Size tam olarak ne uymuyor? MQL'de bir işaretçi aslında bir referans mı? MQL adres aritmetiğinin anlamsız olduğu ve bu nedenle kullanılmadığı göz önüne alındığında!?
 

A100 :
А что конкретно Вас не устраивает? Что в MQL указатель это фактически ссылка?

aslında değil.)

MQL adres aritmetiğinin anlamsız olduğu ve bu nedenle kullanılmadığı göz önüne alındığında!?

akıllı işaretçiler de adres aritmetiğine sahip değildir, ancak bir nedenden dolayı kullanılırlar.
 
TheXpert :

aslında değil.)

akıllı işaretçiler de adres aritmetiğine sahip değildir, ancak bir nedenden dolayı kullanılırlar.

Kesin konuşmak gerekirse, hayır, ancak adres aritmetiğinin yokluğunda, bir MQL işaretçisi\tanımlayıcısı bir C++ referansına bir C++ işaretçisinden daha yakındır (veya en azından daha fazla değil)

Ve eğer öyleyse, sözdizimi uygun şekilde korunmalıdır (* olmadan)

 
Ilyas :

Hayır, ciddi bir sebep yoktu.

Yokluğunun tek gerekçesi, C++'a aşina olmayan kullanıcıların kırılgan zihinlerine dikkat etmektir.

 
A100 :

Kesin konuşmak gerekirse, hayır, ancak adres aritmetiğinin yokluğunda, bir MQL işaretçisi\tanımlayıcısı bir C++ referansına bir C++ işaretçisinden daha yakındır (veya en azından daha fazla değil)

Ve eğer öyleyse, sözdizimi uygun şekilde korunmalıdır (* olmadan)


 
A100 :

Neden bu kadar zorlaştırıyorsun? Yapmak için oldukça yeterli. ve -> eşdeğer, değiştirilebilir girişler

mecazi anlamda

Bunları birbirinin yerine kullanılabilir hale getirirseniz, ikisine de ihtiyaç kalmaz.

C++'da bu mümkündür:

 class A
{

public :
   void f();
};

class PtrA
{
  A* mPtr;

public
   PtrA( A* a ) : mPtr( a ){}

   A* operator ->()
   {
       return mPtr;
   }

   void f();
};

PtrA a( new A );

a.f();   //  Это две разные функции
a->f();   //
 

-> operatörü, öncelikle C++ kodlarıyla uyumluluk için ve ikinci olarak aşırı yükleme olasılığı için dile gerçekten eklenmelidir (bu, akıllı işaretçiler için uygundur).

Ama eşdeğer bir nokta değil elbette. Nokta, MQL'de evrensel bir operatördür.

 

Temel sınıfın dolaylı olarak türetilmiş sınıfa aktarılması hatası neden MQL'de hala düzeltilmedi? Derleyici uyarısı bile yok!

 class A {  };

class B : public A { };

A a;

B* b= &a;  // Нет ошибки