MQL5 Il compilatore non distingue tra una classe e un puntatore ad essa - pagina 8

 

Non capisco perché non proibire la copia implicita per i tipi di oggetto? A cosa servirebbe? Gli oggetti che sono effettivamente oggetti e non strutture travestite da OOP che possono essere convenientemente passate per riferimento, non hanno comunque una logica ridotta al mero contenuto dei campi. Cioè, copiare senza sovraccaricare esplicitamente l'operatore = nella classe non è necessario.

 
Ilya Malev:

Dov'è*?

In MQL
 

È S. Vuoi un PL?

Ilya.

 
Alexey Navoykov:
In MQL

E a cosa porta nel MQL? Può mostrarmi un semplice esempio?

 
Alexey Navoykov:
Perché non dovrebbe funzionare? Ci sono gli operatori * e & per convertire in ciò che è richiesto.

Non ha funzionato per me (nel caso sia vietato)

class A
{
public:
  int i;
  
  void operator =( const A &Object )
  {
    this = Object;
  }
};

void OnStart()
{
  A a1;
  A* a2 = new A;
  A* b = &a1;
  
  a2 = a1; // Хочу копирование объекта
  a2 = b;  // Хочу копирование объекта  
}
 
Ilya Malev:

E a cosa porta nel MQL? Puoi mostrarmelo con un semplice esempio?

fxsaber:

Non potrei farlo (nel caso in cui lo vietassero)

Merda, ragazzi, cosa state facendo?

A a;
A *p;
*p = a; 
 
Alexey Navoykov:

Merda, ragazzi, cosa state facendo?

Area di visibilità...

 
Alexey Navoykov:

Merda, ragazzi, cosa state facendo?

Più di cento per te, amico. O sono stato ingannato da qualche demone quando ho provato prima, o una delle ultime build lo ha aggiunto.

 
Ilya Malev:

Più di cento per te, amico. O sono stato ingannato da un uomo malvagio quando ho provato questo prima, o una delle ultime build lo ha aggiunto.

Ovviamente, la prima) Perché questa funzionalità è disponibile in MQL da circa 3 anni
 

Ero sicuro che non esiste una cosa del genere in MQL! Mi chiedo dove siano cresciute le gambe nella mia testa...

Mi chiedo se c'è anche solo un esempio di questo nel QB o nella Documentazione? Non ha fatto notare senza mezzi termini....