Ver Mensaje Individual
  #2 (permalink)  
Antiguo 18/10/2013, 12:35
vosk
 
Fecha de Ingreso: agosto-2012
Mensajes: 601
Antigüedad: 11 años, 8 meses
Puntos: 83
Respuesta: Array accesible en todas las clases

Con polimorfismo no se, pero puedes probar lo que funciona sin polimorfismo y que sirve para incluir clases en otras: incluyes las cabeceras de las clases derivadas en la cabecera de la base, luego declaras clases nulas derivadas en la cabecera de la base, luego vas a cada derivada e incluyes la cabecera de la base, declaras una base nula en cada derivada y de alguna forma (en el constructor, en una funcion set_loquesea) desde la base envias un puntero this a las derivadas; de esa forma las derivadas pueden accecer a la base. Creo que lo veras mejor con un ejemplo que con esta mie.. de explicacion que acabo de poner :)


Código C++:
Ver original
  1. //cjuego.h
  2. #include "cball.h"
  3. class CBall;//declaro una clase nula de la clase implementada en cball.h
  4.  
  5. class CJuego {
  6. public:
  7.     CJuego();
  8.     ~CJuego();
  9.  
  10. private:
  11.     CBall *c_ball;
  12. };


Código C++:
Ver original
  1. //cjuego.cpp
  2. #include "juego.h"
  3. CJuego::CJuego() {
  4.     c_ball = new CBall(this);
  5. }


Código C++:
Ver original
  1. //cball.h
  2. #include "cjuego.h"
  3. class CJuego;//declaro una clase nula de la clase implementada en CJuego
  4.  
  5. class CBall {
  6. public:
  7.     CBall(CJuego *);
  8. private:
  9.     CJuego *c_juego;
  10. };


Código C++:
Ver original
  1. //cball.cpp
  2. #include "cball.h"
  3. CBall::CBall(CJuego *ptr_cjuego) {
  4.     c_juego = ptr_cjuego;
  5. }

Puedes ponerlo en todas las clases que quieras acceder a la base; de esta forma desde el puntero c_juego puedes acceder a los metodos publicos de la clase CJuego desde las clases derivadas.

Saludos
vosk