OLP. Questões de aplicação - página 16

 
Yedelkin:

As perguntas são realmente pesadas/incorretas?

Durante muito tempo utilizei a primeira via ("por referência"), mas gosto muito da ideia dos descritores. Só não sei se vale a pena reescrever todas as aulas por causa disso.

A primeira maneira funcionaria mais rapidamente. O acesso via "descritor" é mais longo.
 
mql5:
O primeiro método funcionará mais rapidamente. O acesso através do 'descritor' demora mais tempo.
Obrigado, isso é muito útil.
 

Uma pista,

Se uma classe pai tem 15 métodos, mas a classe criança tem um método próprio e utiliza apenas três métodos herdados da classe pai, como será atribuída memória para a classe criança: com base na necessidade de atribuir memória para 16 métodos, ou com base em apenas 4 métodos efectivamente utilizados?

Документация по MQL5: Основы языка / Переменные / Создание и уничтожение объектов
Документация по MQL5: Основы языка / Переменные / Создание и уничтожение объектов
  • www.mql5.com
Основы языка / Переменные / Создание и уничтожение объектов - Документация по MQL5
 
Yedelkin:

Pode dar-me uma dica?

Está a encher a sua cabeça com as coisas erradas).
 
Yedelkin:

Uma pista,

Se uma classe pai tem 15 métodos, mas a classe criança tem um método próprio e utiliza apenas três métodos herdados da classe pai, como será atribuída memória para a classe criança: com base na necessidade de atribuir memória para 16 métodos, ou com base em apenas 4 métodos efectivamente utilizados?

A memória do objecto é atribuída aos dados, não aos métodos. Todos os métodos (ou seja, funções) são armazenados numa única instância no código executável
 
stringo:
A memória de um objecto não é atribuída a métodos, mas a dados. Todos os métodos (ou seja, funções) são armazenados numa única instância no código executável
Acho que já o tenho. Se o mesmo método da classe dos pais for utilizado em 10 classes diferentes de crianças, ainda será armazenado numa única instância no código executável.
 

A busca não funciona. Posso estar a repetir-me, mas a questão é: um objecto de classe pode destruir-se a si próprio? Isto é, primeiro obtemos uma referência do objecto a si próprio no objecto de classe utilizando a palavra reservada isto, depois aplicamos o operador de eliminação ao descritor de objecto correspondente (ponteiro).

Algo do género:

pointer=GetPointer(this);
delete pointer;

Ou é melhor/preferível apagar um objecto "externamente" em vez de "internamente"?

 
GetPointer dá um ponteiro de um tipo não apagável. O objecto não se pode apagar a si próprio. E é isso mesmo :)
 
Yedelkin:

........: Pode um objecto de classe destruir-se a si próprio? Ou seja, primeiro obtemos uma referência ao próprio objecto no objecto de classe utilizando a palavra reservada isto, depois aplicamos o operador de eliminação ao descritor de objecto correspondente (ponteiro).

As tendências suicidas são um sinal seguro de considerar a situação num contexto demasiado estreito).

Tenho uma contra-pergunta: de onde vai chamar todas estas coisas? Escreva um exemplo mais prático, para que possa ver o fio condutor da execução no seu programa. Como irá abordar o objecto?

Deixem-me explicar. Se o objecto for estático (nível global) ou automático (na pilha), não precisamos de o abordar. O sistema de execução irá eliminá-lo automaticamente quando for necessário.

Mas se o objecto for dinâmico, significa que tem uma referência externa que deve ser zerada quando se apaga.

Não há outras opções.

 
MetaDriver:

As tendências suicidas são um sinal seguro de ver a situação num contexto demasiado estreito :)

...
Pode ensinar-me a dizer uma linguagem grosseira como essa? :о)