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

 

 


Tema destacado: Arreglado, de nuevo, el registro del warzone (wargame) de EHN


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Punteros estaticos , Existen ¿?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Punteros estaticos , Existen ¿?  (Leído 8,670 veces)
skorpion32

Desconectado Desconectado

Mensajes: 7


Ver Perfil
Punteros estaticos , Existen ¿?
« en: 4 Agosto 2011, 10:34 am »

Hola , al intentar solucionar un problema de un puntero que uso con muchos objetos, lo puse estatico pero el compilador no me deja siquiera definirlo .

Sera que el operador static no puede ser aplicado a un puntero ?¿

EDIT: Me autorespondo . Ya encontré como solucionarlo , era algo muy simple....

si tenia un miembro estatico como puntero ej
 
Código
  1. class punt
  2.  {
  3.      public:
  4.          static int *a;
  5.  };
  6.  
  7. // la forma de definirlo era asi
  8. int *punt::a = NULL;
  9.  
  10. // Y no
  11. int punt::*a;  // Como estaba intentando  :¬¬

 ;D



« Última modificación: 4 Agosto 2011, 11:18 am por skorpion32 » En línea

naderST


Desconectado Desconectado

Mensajes: 625



Ver Perfil WWW
Re: Punteros estaticos , Existen ¿?
« Respuesta #1 en: 5 Agosto 2011, 07:09 am »

En realidad es sin el asterisco (*)...

Código
  1. int punt::a = NULL;
  2.  

Ahí asignas que el puntero es NULL osea que no apunta a nada, en tu caso estabas asignando que el valor de la dirección donde apunta es NULL.


En línea

skorpion32

Desconectado Desconectado

Mensajes: 7


Ver Perfil
Re: Punteros estaticos , Existen ¿?
« Respuesta #2 en: 7 Agosto 2011, 05:27 am »

Sii , pero si no le coloco el * en la definicion el compilador me manda al africa  :silbar:

Solo así compila bien  :-\

Código
  1. int *punt::a = NULL;
  2.  

¿Como es a la final?  :huh:
« Última modificación: 7 Agosto 2011, 06:30 am por skorpion32 » En línea

naderST


Desconectado Desconectado

Mensajes: 625



Ver Perfil WWW
Re: Punteros estaticos , Existen ¿?
« Respuesta #3 en: 7 Agosto 2011, 07:29 am »

Al parecer solo puedes acceder a punteros de manera privada en las clases de esta manera:

Código
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. class punt {
  6.    private:
  7.    int * ptr;
  8.  
  9.    public:
  10.    void numero(int * num){
  11.        ptr = num;
  12.    }
  13.  
  14.    int obtNumero(){
  15.        return *ptr;
  16.    }
  17. };
  18.  
  19. int main()
  20. {
  21.    int num = 10;
  22.    punt a;
  23.    a.numero(&num);
  24.    cout << "Contenido del puntero: " << a.obtNumero() << endl;
  25.    return 0;
  26. }
  27.  
  28.  

Tienes que crear el objeto y demás.
En línea

Karman


Desconectado Desconectado

Mensajes: 673



Ver Perfil WWW
Re: Punteros estaticos , Existen ¿?
« Respuesta #4 en: 9 Agosto 2011, 05:48 am »

En realidad es sin el asterisco (*)...

Código
  1. int punt::a = NULL;
  2.  

Ahí asignas que el puntero es NULL osea que no apunta a nada, en tu caso estabas asignando que el valor de la dirección donde apunta es NULL.

antes de tratar "enseñar" a los demás deberías leer un poco  :silbar:

Hola , al intentar solucionar un problema de un puntero que uso con muchos objetos, lo puse estatico pero el compilador no me deja siquiera definirlo .

Sera que el operador static no puede ser aplicado a un puntero ?¿

EDIT: Me autorespondo . Ya encontré como solucionarlo , era algo muy simple....

si tenia un miembro estatico como puntero ej
 
Código
  1. class punt
  2.  {
  3.      public:
  4.          static int *a;
  5.  };
  6.  
  7. // la forma de definirlo era asi
  8. int *punt::a = NULL;
  9.  
  10. // Y no
  11. int punt::*a;  // Como estaba intentando  :¬¬

 ;D

La sintaxis de los miembros estáticos es: "<type> <class_name>::<static_variable>;" o "<type> <class_name>::<static_variable> = <value>;" si quieres darle un valor inicial, por lo tanto en tu caso quedaría:

Código
  1. int* punt::a;

o

Código
  1. int* punt::a=NULL;

S2

EDIT: con respecto al acceso, sigue las mismas reglas que los miembros no estáticos (solo para miembros, no para métodos estáticos)
« Última modificación: 9 Agosto 2011, 05:51 am por Karman » En línea

skorpion32

Desconectado Desconectado

Mensajes: 7


Ver Perfil
Re: Punteros estaticos , Existen ¿?
« Respuesta #5 en: 9 Agosto 2011, 06:39 am »

Gracias !! ya me quedo claro  ::)
En línea

BlackZeroX
Wiki

Desconectado Desconectado

Mensajes: 3.158


I'Love...!¡.


Ver Perfil WWW
Re: Punteros estaticos , Existen ¿?
« Respuesta #6 en: 12 Agosto 2011, 07:00 am »

Al parecer solo puedes acceder a punteros de manera privada en las clases de esta manera:

Existen tambien los procesos friend...

Temibles Lunas!¡.
En línea

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

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Metodos Estaticos
Java
charmedever 0 1,444 Último mensaje 28 Septiembre 2012, 05:45 am
por charmedever
Parámetros de inicio estáticos- Servicios Windows
Windows
dokras 0 2,046 Último mensaje 1 Agosto 2013, 17:43 pm
por dokras
Acceso a mienbros no estaticos de clase a traves de estaticos
Programación C/C++
setupybios 4 4,936 Último mensaje 26 Septiembre 2014, 08:26 am
por eferion
CHEAT ENGINE - Punteros Estaticos .
Ingeniería Inversa
Alex17t329 4 8,787 Último mensaje 28 Diciembre 2016, 02:33 am
por Alex17t329
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines