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
también está bajo la custodia de los moderadores
Quien haya dicho algo sobre la custodia... pero un personaje con dos excentricidades...
también bajo la tutela de los moderadores
Parece que he borrado mi propio post.
Este era el caso cuando un objeto se crea en una función a través de new. Originalmente, hablamos de pasar un puntero a un objeto existente. Y aquí, se puede pasar así:
void f(CObj * obj){}
Y si hay que pasar un puntero a una función para crear un objeto en la función, así es como funciona:
Eso es todo lo que querías saber sobre OOP, pero tenías miedo de preguntar))Este código me saca el terminal. En el mejor de los casos, provoca un error crítico en la depuración (para ver la animación haga clic en la imagen):
Es extraño que el compilador se salte esta construcción.
Dmitry dio el primer ejemplo con un error, ¿y qué hay de malo en ello?
Dim, sí compila sin errores, pero al ejecutar el script aparece un error.
Vladimir lo ha corregido y ha añadido un puntero, el código ha funcionado correctamente.
¿Qué más necesitamos? Ahora tenemos que averiguar quién es el más guay? ))))
Chicos, sed respetuosos los unos con los otros, y no recurráis a personalismos e insultos con prepotencia.
Ejemplo inicial de Dimitri
Corrección de Vladimir.
Mi corrección con una impresión del resultado del método, para verificar
Este ejemplo ya funciona, ¿qué más necesitas?
Deja de intentar averiguar quién es más guay o no, todo el mundo tiene errores y erratas.
En el transcurso de estos argumentos, creo que hemos identificado un error del compilador.
¿Por qué el compilador no compila el ejemplo inicial de Dimitri sin errores?
Este código me saca el terminal. En el mejor de los casos, provoca un error de depuración crítico:
Es extraño que tal construcción sea pasada por el compilador.
Aquí todo es válido para el compilador.
Se crea un puntero a un objeto en el segmento de datos del programa y se inicia 0x0 durante la compilación.
Los comandos necesarios para el procesador se crean en el segmento de código.
En tiempo de ejecución, los comandos se levantan en la pila en la dirección de la función z(...).
Y allí mover rdx [0x0]
Y el acceso a una dirección de memoria nula está prohibido. La desreferenciación de un puntero nulo se denomina
Aquí todo es válido para el compilador.
¿Para qué compilador?
Este código me saca el terminal. En el mejor de los casos, provoca un error crítico en la depuración (para ver la animación haga clic en la imagen):
Es extraño que el compilador se salte esta construcción.
El mío compila, funciona correctamente, pero muestra un mensaje de pérdida de memoria (borrar no funciona) al finalizar.
Ya le enseñarás lo malo, es lo bueno lo que hay que tratar )))
No te has sentado con los códigos de fxsaber por nada. A mí me parece una obra maestra.
Disculpas por la información errónea, antes escribí que no se puede llamar al método Create() en una clase hija.
Ahora, comprobado de nuevo, se puede. Pero el acceso al miembro privado m_button no estaba disponible. Es decir, era imposible comprobar, por ejemplo, el estado del botón: pulsado/liberado.
Ahora con la pista de Igor es posible.