Perguntas de Iniciantes MQL5 MT5 MetaTrader 5 - página 179

 
Reshetov:

Isto não é um ponteiro para si próprio, mas um ponteiro associado ao identificador de campo na implementação do objecto.

Ou seja, pode haver uma variável local com o mesmo identificador que o campo em algum método de objecto, caso em que se pode usar isto para distinguir um ponteiro para o campo de objecto de um ponteiro para uma variável local.

para que fim pode isto ser usado? pode usar isto como exemplo?
 
Barbarian2:
Para que é que isto poderia ser utilizado? Pode dar-me um exemplo?
Isto é mais frequentemente utilizado em construtores de classes, de modo a não inventar novos identificadores, porque é nos construtores que os valores de argumentos são atribuídos aos campos de objectos.
 
Barbarian2:
mas para que fins é que isto pode ser necessário? pode dar um exemplo?
class node
{
   public:
      void LinkWithNode(node* childNode)
      {
          if(CheckPoint(linkNode) != POINTER_INVALID)
             this.childNode = childNode;
      }
   private:
      node* childNode;
};

class LineNode : node
{
   public:
      LineNode(node* parentNode)
      {
         parentNode.LinkWithNode(GetPointer(this));
      }
};

Neste caso, ao criar um LineNode, é necessário especificar o nó pai a que pertence a instância LineNode actual. O nó pai poderá então referir-se a esta instância por referência. Neste exemplo, a palavra isto é usada duas vezes. No primeiro caso, a palavra isto especifica que a variável childNode se refere especificamente à classe actual, enquanto que a variável childNode sem isto é uma variável do método LinkWithNode com o mesmo nome. No segundo caso, isto devolve a instância actual da classe e GetPointer recebe um ponteiro para ela. Isto permite ligar um LineNode no momento da criação.

 
C-4:

Neste caso, ao criar um LineNode, é necessário especificar o nó pai a que pertence a instância LineNode actual. O nó pai poderá então referir-se a esta instância por referência. Neste exemplo, a palavra isto é usada duas vezes. No primeiro caso, a palavra isto especifica que a variável childNode se refere especificamente à classe actual, enquanto que a variável childNode sem isto é uma variável do método LinkWithNode com o mesmo nome. No segundo caso, isto devolve a instância actual da classe e GetPointer recebe um ponteiro para ela. Assim, é possível ligar a LineNode no momento da criação.

ou seja, no segundo caso, levará a uma redução do código?
 
Barbarian2:
ou seja, no segundo caso, levará a uma redução do código?
Seja qual for a estenografia (neste caso), está a concentrar-se na coisa errada. A utilização desta pode ser variada. O importante é compreender que este é um sinónimo para a instância do objecto onde este é utilizado. Ao definir uma classe, quando ainda não existem instâncias disto, esta é a única forma de dizer ao compilador o que significa o programador.
 
Barbarian2:
ou seja, no segundo caso, levará a uma redução do código?

Não, não é isso. Isto permite-nos controlar uma instância de uma classe já na sua definição. Sabendo isto, podemos impor o nosso próprio comportamento único a uma determinada instância. Isto alcança um elevado grau de flexibilidade e abstracção.

 

Uma palavra de conselho. Vou passar de mql4 para 5, vou escrever um indicador para amortecedores de 1000 ou 10k. É possível nomear os amortecedores com variáveis?

Como

enquanto( a<1000)

{

a++ B+++

nome do amortecedor = buff+a

buff(a)=iMA(null, B,) }

E subsequente processamento de buffer com o mesmo looping

Ou qualquer outra forma de reduzir o tempo e o código com novas características mql5.

 
Andrei-1:

Antes de mais, o limite é de 256 amortecedores (posso estar enganado).

E os amortecedores estão bem, pode colocá-los em aulas, dar pseudónimos e pesquisar por pseudónimos.

 
Obrigado, vamos analisar o assunto.
 
Andrei-1:

Em algum lugar nos artigos serrote tol64, não me consigo lembrar de uma vista de olhos, procure por ela.

TheXpert:

Antes de mais, o limite é de 256 amortecedores (posso estar enganado).

E tudo está bem com buffers, pode colocá-los em aulas, dar-lhes pseudónimos e pesquisar por pseudónimos.

Não há nenhuma restrição na ajuda"O número de amortecedores indicadores que pode utilizar num indicador personalizado não é limitado. ", mas mencionou 512 algures, por isso não sei.