Errores, fallos, preguntas - página 1816
![MQL5 - Lenguaje de estrategias comerciales para el terminal de cliente MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Está perdiendo oportunidades comerciales:
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Registro
Entrada
Usted acepta la política del sitio web y las condiciones de uso
Si no tiene cuenta de usuario, regístrese
He encontrado (en mi opinión) un comportamiento incorrecto de los punteros de los objetos.
Parece un error de MQL.
Tiene el error. ¿Cómo se imagina asignar un padre vacío a un descendiente?
Parece un error de MQL.
Tiene el error. ¿Cómo se imagina asignar un padre vacío a un descendiente?
Exactamente igual que los no vacíos. En baseObj1 hay un puntero a un objeto de clase descendiente. Si eliminas delete(obj1), la asignación en la última línea no causa ningún problema - los tipos de punteros coinciden. Creo que la asignación debe seguir el mismo camino si el objeto al que se refiere el puntero es eliminado. Y no debe haber ningún error de "Acceso de puntero inválido" porque no se intenta acceder a un objeto eliminado.
Aquí está esta parte de su código.
Aparentemente, está comprobando si el tipo de objeto referenciado por baseObj1 coincide con el tipo del puntero obj2. Aquí hay dos posibilidades:
1) El propio puntero puede ser una estructura compleja que contenga el tipo del objeto
2) Tenemos que referirnos al objeto para conocer su tipo.
Este parece ser el caso #2, y tendremos que vivir con ello. Gracias por las preguntas dirigidas )
Kaspersky lleva una semana gritando en el terminal intentando actualizar.
Esta parte de su código
Lo mismo que aquí.
class B : public A {};
class C : public B {};
void OnStart()
{
B *b = new B;
delete b;
B *c = b;
b = new C;
A *a = c;
Print( a, ":", b, ":", c );
}
Como aquí.
class B : public A {};
void OnStart()
{
B *b1 = new B;
A *a = b1;
delete b1;
B *b2 = b1;
b1 = new B; //уже другой объект
a = b2; //
Print( a, ":", b1, ":", b2 );
}
Kaspersky lleva una semana gritando en el terminal intentando actualizar.
todo claro, build 1545. incluso kaspersky dice todo claro
https://www.virustotal.com/ru/file/2c3bf04666714cfac26e6e1c0fe355c6081554a0c2a15434849b0a5c241c95b0/analysis/1487685060/