En una aplicación C++, digamos que tengo una clase de ventana, que tiene varias instancias de una clase de control. Si la ventana de mi quería notificar a un control que se había hecho clic, puede ser que utilice:¿Es una mala práctica para un objeto secundario tener un puntero a su elemento primario?
control[n]->onClick();
Ahora vamos a decir que el control necesita saber el tamaño de la misma de ventana padre, o alguna otra información. Para esto, estaba considerando dar al control un puntero a sí mismo (esto) como parámetro para su constructor. Quisiera entonces hacer una llamada así desde el onClick método controles():
Size windowsize = parent->getSize();
¿Esto se considera una mala práctica, o de cualquier otra manera en contradicción con los valores de la programación orientada a objetos? Si es así, ¿cuál sería la forma "correcta" de hacer esto?
Como una pregunta complementaria, ¿sería mejor tener un vector de Clase o Clase *? ¿Vale la pena la complejidad añadida para la ganancia de velocidad? (Los cambios en el vector serían poco frecuentes).
@Martin: ¿cuál es su problema ...? No tiene mucho sentido quejarse sin explicación ... –
@Tony: Mark Cidade corrigió el título, que originalmente decía exactamente como la cita en el comentario de @Martin. Supongo que la queja es que fue un poco vago para un título. –