Pasar una clase a otra

Iniciado por eleon, 13 Julio 2012, 11:16 AM

0 Miembros y 1 Visitante están viendo este tema.

eleon

Buenas:

Bien sabemos que en C se puede hacer lo siguiente:

typedef struct {
int x;
int y;
} Estructura1;

int main ()
{
Estructura1 *puntero = malloc (Estructura1);
void* puntero_void = puntero; //El puntero void puede apuntar a la misma dirección que cualquier otro puntero
puntero = puntero_void; //Y viceversa. Un puntero de un tipo puede apuntar a la misma dirección que un puntero void. Pero al hacer esto lo que conseguimos es darle una estructura a esa zona de memoria

return 0;
}


Bien, ese último punto no consigo simularlo en C++, no consigo hacer que un puntero de tipo "Clase1" apunte a la misma dirección que un puntero de tipo "void".

¿Alguna idea?.

Saludos.

BlackZeroX

#1
.
En C++ se usa...

Código (cpp) [Seleccionar]


class hola
{
   public:
       //hola();
       //virtual ~hola() = 0;
   protected:
   private:
};

int main() {
   hola clase;
   void *ptr = static_cast<void*>(&clase); // caso Normal (cuando marque error usar el caso extremo).
   //void *ptr = reinterpret_cast<void*>(&clase); // caso Extremo (Tener cuidado al usar).
   return 0;
}



Dulces Lunas!¡.
The Dark Shadow is my passion.

eleon

#2
Muchas gracias, funciona a la perfección.

Me gustaría preguntarte acerca de más instrucciones de ese tipo aunque no tengan que ver con las clases, es decir, quisiera informarme sobre instrucciones como esa que son poco comunes de ver. Si no hay una recopilación de tal cosa, ¿conoces alguna lista donde aparezcan todas las instrucciones que componen las librerías estándar de C++?.

Gracias de nuevo. Saludos.

BlackZeroX

Yo aprendí aquí:

http://www.zator.com/Cpp/E_Ce.htm

P.D.: No es que sean poco comunes es que solo mezclamos C con C++ en si static_cast, reinterpret_cast, const_cast, etc  son simples Cast de C pero especialmente para C++...

Dulces Lunas!¡.
The Dark Shadow is my passion.