[C con Clase] duda acceder a miembro static
Steven Davidson
srd4121 en njit.edu
Mar Jun 21 00:01:37 CEST 2011
Hola Omar,
2011/6/20 omar mendoza <omar.p9 en gmail.com>
> Hola a todos, cómo le pudeo hacer para acceder a un miembro static desde
> otra clase?
> por ejemplo
>
> class A{
>
> private:
> static int numero;
> }
>
> class B{
>
> private:
> A *num;
>
> }
>
>
> ahora en una fucnión main
>
>
> int main(){
>
> B *b;
>
> }
>
> cómo podría hacerle para sabes cuanto vale el miembro numero de la clase
> A??
>
> desde A sé que es así: A::numero. Pero desde B??
>
Para acceder a cualquier entidad en un ámbito denominado, usa el operador de
ámbito :: que en tu caso sería,
A :: numero
porque esta entidad es estática. Eso sí, recuerda que debes definir tal
variable y es aconsejable inicializarla. Esto es,
int A :: numero = 10;
En tu caso, hay un problema porque 'numero' es privado y por lo tanto, no
podemos acceder a ello desde fuera del ámbito de la clase 'A'. Tendrás que
cambiar el permiso de acceso de 'numero' o posiblemente crear una función
miembro estática para acceder a 'numero'. Por ejemplo,
class A
{
private:
static int numero;
public:
static int get_numero() { return numero; }
};
int A::numero = 10;
Ahora puedes invocar 'get_numero()' para obtener el dato en 'A::numero'.
Espero haber aclarado la duda.
Steven
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20110621/16723d99/attachment.html>
Más información sobre la lista de distribución Cconclase