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
Ha surgido una pregunta:
Hay una clase "Programa" que utiliza las clases"Nueva barra" y "Gestor de datos". A su vez, la clase "Nueva barra" también utiliza la clase "Gestor de datos". Los getters y setters públicos se implementan en la clase "Data Manager".
Pregunta: ¿Cuáles son las opciones para la inicialización del programa de la clase "Nueva barra" para especificar las propiedades "símbolo" y "marco temporal" de la clase "Gestor de datos"? No me gustaría tener getters y setters públicos en la clase New Bar para acceder a los campos del gestor de datos. Y nos gustaría mantener la privacidad del gestor de datos.
En otras palabras: La aplicación puede utilizar varias clases que utilizan el gestor de datos. Durante la inicialización del programa, todos los campos del gestor de todas las clases deben ser inicializados con los valores requeridos. Pero no quiero crear getters en todas las clases para acceder a los campos del gestor de datos. Así que...
Según su descripción tiene sentido separar estos ajustes en una entidad separada, la misma para todos los gestores y no sólo
Sí, parece que necesitas heredar las clases que necesitan un gestor de una clase base que tenga getters a los campos del gestor. Gracias.
Ha surgido una pregunta:
Hay una clase "Programa" que utiliza las clases"Nueva barra" y "Gestor de datos". A su vez, la clase "Nueva barra" también utiliza la clase "Gestor de datos". Los getters y setters públicos se implementan en la clase "Data Manager".
Pregunta: ¿Cuáles son las opciones para la inicialización del programa de la clase "Nueva barra" para especificar las propiedades "símbolo" y "marco temporal" de la clase "Gestor de datos"? No me gustaría tener getters y setters públicos en la clase New Bar para acceder a los campos del gestor de datos. Y nos gustaría mantener la privacidad del gestor de datos.
En otras palabras: La aplicación puede utilizar varias clases que utilizan el gestor de datos. Durante la inicialización del programa, todos los campos del gestor de todas las clases deben ser inicializados con los valores requeridos. Pero no quiero crear getters en todas las clases para acceder a los campos del gestor de datos. Así que...
Así es como lo hago yo.
Así es más o menos como lo hago yo.
Gracias por el ejemplo, hasta ahora es un poco complicado, pero en general la idea es clara. Inmediatamente surge una pregunta: vale, si "un nivel de anidación" - aquí está claro, pero ¿si habrá varios niveles de anidación?
Añadido:
Tampoco está claro por qué el campo cIsDelData? Después de todo, puedes comprobar m_data contra POINTER_DINAMIC en el destructor. ¿O me equivoco?
Si se hace la herencia, se obtendrá un montón de métodos innecesarios. Y el objeto debe ser privado. Así que, no te lo vas a creer, pero la forma más fácil es hacer setters para todas las clases que utilizan el gestor de datos.
Si todos los gestores de datos trabajan con los mismos parámetros, es mejor no crear objetos, sino pasar un puntero a un gestor de datos. En este caso, sólo se necesita un setter para pasar el puntero.
Gracias por el ejemplo, hasta ahora es un poco complicado, pero en general la idea es clara. Inmediatamente surge una pregunta: vale, si "un nivel de anidación" - aquí está claro, pero ¿si habrá varios niveles de anidación?
Añadido:
Tampoco está claro por qué el campo cIsDelData? Después de todo, puedes comprobar m_data contra POINTER_DINAMIC en el destructor. ¿O me equivoco?
Gracias, lo pensaré.
Lo hago más o menos así.
lo que significa esta líneaCDataManager* m_data;
Chicos quiero hacer una cosa así. Tengo una macro.
Como resultado tendré 2 macrosfoor yfoor1.
lo que significa esta líneaCDataManager* m_data;
Chicos quiero hacer una cosa así. Tengo una macro.
Como resultado tendré 2 macrosfoor yfoor1.
Un puntero a un objeto.
No te ofendas, pero es demasiado pronto para que te ocupes de esas macros. En primer lugar, entiendan por qué he hecho esto: