elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Guía actualizada para evitar que un ransomware ataque tu empresa


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Pasar una clase a otra
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Pasar una clase a otra  (Leído 3,412 veces)
eleon

Desconectado Desconectado

Mensajes: 99


Ver Perfil
Pasar una clase a otra
« en: 13 Julio 2012, 11:16 am »

Buenas:

Bien sabemos que en C se puede hacer lo siguiente:

Código
  1. typedef struct {
  2. int x;
  3. int y;
  4. } Estructura1;
  5.  
  6. int main ()
  7. {
  8. Estructura1 *puntero = malloc (Estructura1);
  9. void* puntero_void = puntero; //El puntero void puede apuntar a la misma dirección que cualquier otro puntero
  10. 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
  11.  
  12. return 0;
  13. }

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.


« Última modificación: 13 Julio 2012, 11:24 am por eleon » En línea

BlackZeroX
Wiki

Desconectado Desconectado

Mensajes: 3.158


I'Love...!¡.


Ver Perfil WWW
Re: Pasar una clase a otra
« Respuesta #1 en: 13 Julio 2012, 11:36 am »

.
En C++ se usa...

Código
  1.  
  2. class hola
  3. {
  4.    public:
  5.        //hola();
  6.        //virtual ~hola() = 0;
  7.    protected:
  8.    private:
  9. };
  10.  
  11. int main() {
  12.    hola clase;
  13.    void *ptr = static_cast<void*>(&clase); // caso Normal (cuando marque error usar el caso extremo).
  14.    //void *ptr = reinterpret_cast<void*>(&clase); // caso Extremo (Tener cuidado al usar).
  15.    return 0;
  16. }
  17.  
  18.  

Dulces Lunas!¡.


« Última modificación: 13 Julio 2012, 11:48 am por BlackZeroX (Astaroth) » En línea

The Dark Shadow is my passion.
eleon

Desconectado Desconectado

Mensajes: 99


Ver Perfil
Re: Pasar una clase a otra
« Respuesta #2 en: 13 Julio 2012, 12:19 pm »

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.
« Última modificación: 13 Julio 2012, 12:25 pm por eleon » En línea

BlackZeroX
Wiki

Desconectado Desconectado

Mensajes: 3.158


I'Love...!¡.


Ver Perfil WWW
Re: Pasar una clase a otra
« Respuesta #3 en: 13 Julio 2012, 12:39 pm »

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!¡.
En línea

The Dark Shadow is my passion.
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines