Ver Mensaje Individual
  #1 (permalink)  
Antiguo 12/04/2011, 10:45
Avatar de ehguacho
ehguacho
 
Fecha de Ingreso: febrero-2010
Mensajes: 138
Antigüedad: 14 años, 2 meses
Puntos: 4
Problema con miembros heredados

buenos dias gente! ando con una duda, a ver si alguien puede ayudarme.

el tema es que estoy haciendo un programa en C++ utilizando clases. el problema es que no se como acceder desde una subclase a un miembro de una superclase. es decir: se supone que la subclase hereda el miembro desde la superclase, pero no puedo acceder al mismo o, mejor dicho, no me devuelve el valor que deberia devolverme. evidentemente algo estoy haciendo mal.

estas son las implementaciones de clases:

clase "Consola"
Código:
class CConsola
{
    public:
        virtual ~CConsola() { free(RAM); free(VRAM); free(SRAM); }
        BYTE *RAM, *VRAM, *SRAM;

    public:
        inline int LoadCart(char* FileName);
};
clase "P6502"
Código:
class CP6502 : public CConsola
{
    public:
        BYTE A, X, Y, SP;
        BYTE C_FLAG, Z_FLAG, N_FLAG, V_FLAG, B_FLAG, D_FLAG, I_FLAG;
        WORD PC;
        int Ciclos;

    public:
        inline void Reset6502(void);
};
definicion de la funcion "Reset6502"
Código:
inline void CP6502::Reset6502(void)
{
    A = X = Y = 0;
    SP = 0xFD;
    C_FLAG = Z_FLAG = N_FLAG = V_FLAG = B_FLAG = D_FLAG = 0;
    I_FLAG = 1;
    Ciclos = 0;
    PC = (CConsola::RAM[0xFFFD] << 8) | CConsola::RAM[0xFFFC];

    return;
}
ahora bien, cuando muestro el valor del miembro "PC", se muestra "C3E7", cuando en realidad deberia decir "8000". dado el valor observado, asumo que en "PC" se esta almecenando una direccion de memoria, como si de un puntero se tratase, y no es esto lo que en realidad estoy intentando hacer.

lo que necesito es recoger en el miembro "PC" de la subclase "P6502" el valor almacenado en el miembro "RAM[xxxx]" de la superclase "Consola".

cualquier sugerencia/ayuda sera bienvenida y gracias a todos de antemano.
__________________
Cine clásico en descarga directa! http://felliniycia.comule.com