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
¿Cómo se establecen los enlaces cruzados entre clases descendientes que tienen una raíz común en algún lugar profundo de la jerarquía?
Por ejemplo: Las clases F y Z son los eslabones finales de una cadena de herencia con una raíz común en la jerarquía, la clase A.
¿Cómo se pueden obtener datos o métodos de la clase Z desde la clase F?
No se puede. No existe tal cosa. Pero no es necesario.
Después de crear los objetos puedes pasar un puntero de un objeto al segundo y un puntero del segundo objeto al primero.
Aunque, si hablamos específicamente de la clase, puedes dirigirte a cualquier objeto a través de dos colones. Pero, ¿para qué lo necesitas? Es necesario a veces, por supuesto, pero es una característica OOP extremadamente menor.
De ninguna manera. No existe tal cosa. Pero no es necesario.
Después de crear los objetos, puedes pasar un puntero de un objeto al segundo y un puntero del segundo objeto al primero.
Aunque, si hablamos específicamente de la clase, puedes referirte a cualquier cosa a través de dos colones. Pero, ¿para qué lo necesitas?
Ejemplo: La clase F almacena los métodos de Color y Longitud, y la clase Z los métodos de Sonido y Anchura.
Aparece un Objeto que tiene dos propiedades, Longitud y Anchura, pero son calculadas por diferentes clases F y Z. ¿Qué hacer? Crear una clase separada con la repetición de estos métodos, o ¿cómo puedo acceder a ellos? (¿Con cuatro puntos?).
Ejemplo: La clase F almacena los métodos de Color y Longitud, y la clase Z los métodos de Sonido y Anchura.
Aparece un Objeto que tiene dos propiedades, Longitud y Anchura, pero son calculadas por diferentes clases F y Z. ¿Qué hacer? Crear una clase separada con la repetición de estos métodos, o ¿cómo puedo acceder a ellos? (¿Con cuatro puntos?).
Podrías crear una nueva clase e incluir en ella las clases F y Z.
Puedes crear una nueva clase e incluir en ella las clases F y Z.
Puedes crear una nueva clase e incluir en ella las clases F y Z.
Alternativamente, en la clase en la que quieres los datos de la otra clase, puedes hacer un método para obtener un puntero a la clase deseada.
¿Un "arco" de clase? Lo tengo. Gracias.
Puedes simplemente obtener un puntero a la clase que quieras, y usar el puntero para obtener un objeto de clase. Pero hay que tener cuidado de no obtener un puntero a un objeto de clase vacío o nuevo.
Puede simplemente obtener un puntero a la clase deseada, y utilizar el puntero para obtener un objeto de clase. Pero hay que tener cuidado de no obtener un puntero a un objeto de clase vacío.
¿Una clase de "reverencia"? Ya veo.
En el ejemplo
La clase Y contiene variables con tipos de las clases F y Z.
Pero si ya tiene objetos de las clases F y Z creados y utilizados en algún lugar, no podrá acceder a ellos en el objeto Y. Habrá dos nuevos objetos de las clases F y Z en el objeto Y.
Y para obtener acceso a los objetos de las clases F y Z creados anteriormente y ya utilizados, es necesario obtener referencias a los objetos F y Z en la clase Y - entonces la clase Y puede operar con esos datos, que ya están escritos en F y Z, en lugar de utilizar los nuevos y prístinos F y Z.
Pero si creas un objeto de enlace de este tipo, entonces F y Z en él dará acceso a las clases F y Z, y deben ser llenados sólo a través de la clase Y - de nuevo, dar acceso a los objetos F y Z de ella, obtener un puntero al objeto que necesita y trabajar con él por el puntero.
Sutilezas. Ya veo. La jerarquía de la herencia es conveniente cuando los datos son claramente clasificables, predefinidos e inequívocos. A medida que los objetos se hacen más complejos, pueden aparecer combinaciones de métodos y propiedades no previstas para las clases, lo que requiere la creación de "bindings", es decir, enlaces cruzados entre clases. Esto no siempre es conveniente y puede romper el bonito esquema de distribución y obligar a revisarlo.
No es necesario romper nada - sólo hay que añadir un método a la clase que da un puntero al objeto requerido de otra clase.
En los últimos artículos he pasado punteros aobjetos de clase de colección de datos previamente creados y en funcionamiento y habiendo acumulado el objeto de cuenta corriente en los objetos de comercio de esta manera. Y la clase comercial los maneja como si siempre los hubiera tenido.