OLP. Problemas de aplicación - página 16

 
Yedelkin:

¿Las preguntas son realmente pesadas/incorrectas?

Durante mucho tiempo utilicé la primera forma ("por referencia"), pero me gusta mucho la idea de los descriptores. Pero no sé si vale la pena reescribir todas las clases.

La primera forma funcionaría más rápido. El acceso a través del "descriptor" es más largo.
 
mql5:
El primer método funcionará más rápido. El acceso a través del "descriptor" lleva más tiempo.
Gracias, es muy útil.
 

Una pista,

Si una clase padre tiene 15 métodos, pero la clase hija tiene un método propio y sólo utiliza tres métodos heredados de la clase padre, ¿cómo se asignará la memoria para la clase hija: basándose en la necesidad de asignar memoria para 16 métodos, o basándose en sólo 4 métodos realmente utilizados?

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

¿Puedes darme una pista?

Estás llenando tu cabeza con las cosas equivocadas).
 
Yedelkin:

Una pista,

Si una clase padre tiene 15 métodos, pero la clase hija tiene un método propio y sólo utiliza tres métodos heredados de la clase padre, ¿cómo se asignará la memoria para la clase hija: basándose en la necesidad de asignar memoria para 16 métodos, o basándose en sólo 4 métodos realmente utilizados?

La memoria del objeto se asigna para los datos, no para los métodos. Todos los métodos (es decir, las funciones) se almacenan en una única instancia en el código ejecutable
 
stringo:
La memoria de un objeto no se asigna a los métodos, sino a los datos. Todos los métodos (es decir, las funciones) se almacenan en una única instancia en el código ejecutable
Creo que lo tengo. Si el mismo método de la clase padre se utiliza en 10 clases hijas diferentes, seguirá almacenándose en una única instancia en el código ejecutable.
 

La búsqueda no funciona. Puede que me esté repitiendo, pero la pregunta es: ¿puede un objeto de clase destruirse a sí mismo? Es decir, primero obtenemos una referencia del objeto a sí mismo en la clase objeto utilizando la palabra reservada this, y luego aplicamos el operador de borrado al descriptor del objeto correspondiente (puntero).

Algo así como:

pointer=GetPointer(this);
delete pointer;

¿O es mejor/preferible eliminar un objeto "externamente" en lugar de "internamente"?

 
GetPointer da un puntero de un tipo no borrable. El objeto no puede borrarse a sí mismo. Y así es :)
 
Yedelkin:

........: ¿Puede un objeto de clase destruirse a sí mismo? Es decir, primero obtenemos una referencia al propio objeto en la clase objeto utilizando la palabra reservada this, y luego aplicamos el operador de borrado al descriptor del objeto correspondiente (puntero).

Las tendencias suicidas son un signo seguro de considerar la situación en un contexto demasiado estrecho).

Tengo una contrapregunta: ¿desde dónde vas a llamar a todo esto? Escribe un ejemplo más práctico, para que puedas ver el hilo de ejecución de tu programa. ¿Cómo se dirigirá al objeto?

Déjeme explicarle. Si el objeto es estático (nivel global) o automático (en la pila), no necesitamos dirigirnos a él. El sistema de ejecución lo eliminará automáticamente cuando sea necesario.

Pero si el objeto es dinámico, significa que tiene una referencia externa que debe ponerse a cero al borrarlo.

No hay otras opciones.

 
MetaDriver:

Las tendencias suicidas son un signo seguro de ver la situación en un contexto demasiado estrecho. :)

...
¿Puedes enseñarme a decir un lenguaje soez como ese? :о)
Razón de la queja: