[C con Clase] duda acceder a miembro static

Pablo Alejandro Herrero pablusplus en gmail.com
Vie Jun 24 17:09:54 CEST 2011


si, esa forma de encapsular el acceso es muy útil. Solo para colaborar
ampliando las opciones, puedes jugar con los privilegios de acceso, al
declarar a B como friend de A, o usar a A como clase base de B... me parece
que lo más limpio y simple es el consejo de Steven pero por si te gusta
autoinfligirte dolor... :-)

El 21 de junio de 2011 00:52, omar mendoza <omar.p9 en gmail.com> escribió:

> una vez mas, gracias steven!!
>
> El 20 de junio de 2011 17:01, Steven Davidson <srd4121 en njit.edu> escribió:
>
>> 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
>>
>>
>> _______________________________________________
>> Lista de correo Cconclase Cconclase en listas.conclase.net
>> http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
>> Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ
>>
>
>
>
> --
> Omar Jonathan Mendoza Bernal
> "Las cicatrices nos recuerdan que el pasado fue real" Dr. Lecter en Dragón
> Rojo
>
> _______________________________________________
> Lista de correo Cconclase Cconclase en listas.conclase.net
> http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
> Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20110624/909a0e30/attachment.html>


Más información sobre la lista de distribución Cconclase