[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