Errores, fallos, preguntas - página 1892

 
fxsaber:
Otra pregunta.
El rendimiento de la banda de rodadura.
 
Renat Fatkhullin:
El trabajo de una pisada.
si es un chiste, es divertido )) y si no, por favor, explique lo que es una banda de rodadura en la programación
 
Konstantin:
por favor, explique qué es un protector en programación
lo que hizo desaparecer a los descompactadores
 
Renat Fatkhullin:

Sí, este es un ejemplo que demuestra su pregunta:

y la salida:

En primer lugar, comprobamos el reparto no resuelto de abajo hacia arriba y obtenemos NULL. Esto es correcto.

Entonces creamos un objeto CLASS2, le asignamos una referencia a su clase padre (aquí es importante entender que dinámicamente el entorno sabe que el tipo original del objeto CLASS2 está almacenado en su meta-información). A continuación (sólo su pregunta), se hace un casting dinámico (con la comprobación de la conversión correcta basada en la metainformación del objeto de origen) de la referencia CLASS1 a CLASS2.

Comprobamos el resultado del casting y lo escribimos en la variable i = 1. Por último, se emite el valor de i, referido al objeto creado originalmente.

Todo funciona correctamente y de acuerdo con la especificación (incluida la especificación dynamic_cast en el propio C++).

Gracias por la aclaración. La conversión de tipos en MQL está ahora algo clara)) Pero, ¿para qué sirve crear dynamic_cast si no podemos lanzar desde abajo hacia arriba en ningún caso y podemos prescindir de dynamic_cast desde arriba hacia abajo? ¿Quizás hay algunas sutilezas aquí y yo no las entiendo?
 
Konstantin:
Gracias por la aclaración, más o menos lo tengo en MQL para la conversión de tipos)) No sé para qué necesitamos dynamic_cast si de todas formas no podemos lanzar de abajo hacia arriba y podemos prescindir de dynamic_cast de arriba hacia abajo? ¿Quizás hay algunas sutilezas aquí y no las entiendo?

Vuelve a leer el código y mi explicación, por favor.

También demuestra cómo la fundición dinámica puede plantear de forma segura la fundición desde abajo hacia arriba basándose en la meta-información del objeto creado originalmente. Si un objeto fue creado a partir de un descendiente, y luego se convirtió en una referencia a la clase padre, entonces, basándose en la metainformación (el objeto original es en realidad un descendiente) se puede convertir con seguridad esa referencia a un descendiente.

Normalmente se utiliza cuando los objetos de varios descendientes se apilan en un array/lista de referencias a la clase padre, y luego se recuperan y se lanzan con seguridad a uno u otro descendiente. Si la conversión da como resultado NULL, significa que el objeto no es obtenido por el descendiente y no debe ser manejado.

 
Renat Fatkhullin:

Vuelve a leer el código y mi explicación, por favor.

También demuestra cómo la fundición dinámica puede plantear de forma segura la fundición desde abajo hacia arriba basándose en la meta-información del objeto creado originalmente. Si un objeto fue creado a partir de un descendiente, y luego se convirtió en una referencia a la clase padre, entonces basado en la metainformación (el objeto original es en realidad un descendiente) se puede convertir con seguridad esa referencia a un descendiente.

Normalmente se utiliza cuando los objetos de varios descendientes se apilan en un array/lista de referencias a la clase padre, y luego se recuperan y se lanzan con seguridad a uno u otro descendiente. Si la conversión da como resultado NULL, entonces el objeto no es obtenido por el descendiente y no necesita ser procesado.

He leído el código, pero no es esto:

CLASS2 *my_ptr2=dynamic_cast<CLASS2 *>(my_ptr);

no es análogo a esto:

CLASS2 *my_ptr2=(CLASS2*)my_ptr;

No puedo entender la sutileza de usar dynamic_cast, excepto que al ejecutar código usando dynamic_cast no obtendremos un error porque dynamic_cast devuelve NULL en caso de error

 
Konstantin:

He leído el código, pero no es esto:

no es similar a esto:

No puedo entender la sutileza de usar dynamic_cast, excepto que al ejecutar código usando dynamic_cast no obtendremos un error porque dynamic_cast devuelve NULL en caso de error

Te recomiendo que leas la especificación de C++ dymanic_cast en google.

Es algo trivial.

 
Al entregar los recursos del PC en cludes se bloquea al iniciar el juego - el juego"Call of Duty: BlackOpsIII" se bloquea - 1 agente estuvo involucrado. La prioridad del agente era mínima - la memoria consumía 3,5 gigabytes de 16 - en general no debería haber problemas. Con los agentes no activos el juego se desarrolló bien. ¿Has probado la compatibilidad de los agentes con otros programas?
 
-Aleks-:
Al entregar los recursos del PC en cludes se bloquea al iniciar el juego - el juego"Call of Duty: BlackOpsIII" se bloquea - 1 agente estuvo involucrado. La prioridad del agente era mínima - la memoria consumía 3,5 gigabytes de 16 - en general no debería haber problemas. Con los agentes no activos el juego se desarrolló bien. ¿Se ha comprobado generalmente la compatibilidad de los agentes con otros programas?

Por alguna razón pensé de inmediato que tal vez el error en el juego y lo conectó con las peculiaridades de trabajo en máquinas de 64 bits cuando el programa se carga en el espacio de direcciones> 4 GB
 
Sergey Dzyublik:

Por alguna razón inmediatamente vino la idea de que tal vez un error en el juego y lo conectó a las peculiaridades de trabajar en máquinas de 64 bits, cuando el programa se carga en el espacio de direcciones> 4 GB

Es decir, para comprobar esta hipótesis necesito llenar la RAM más de 4 gigabytes y ejecutar el juego - lo intentaré cuando mi hijo lo juegue.
Razón de la queja: