[C con Clase] CLASES Y STATIC

Programante programante en gmail.com
Jue Mayo 24 13:20:12 CEST 2007


rodolfo rosso paz escribió:
> Hola a todos:
>
> Tengo el siguiente problema:
> Quiero declarar una variable estatica como miembro privado de una clase 
> llamada Tiempo,
>
>
> ARCHIVO TIEMPOX.H
>
> class Tiempo
> {
>       .
>       .
> private:
>    static char* aMeses[ 12 ];   //un arreglo de punteros a char
> }
>
> Hasta aqui bien, luego como deseo que esa variable tenga alcance de archivo,
> y que no este dentro de ninguna funcion (por eso la declare static),
> la defino en el archivo donde defino las funciones miembro, a continuacion
> de los #include:
>
>
> ARCHIVO FECHA.CPP
>
> # ...
> #include "tiempox.h"
>
> Tiempo::aMeses[0] = "Enero";
> Tiempo::aMeses[1] = "Febrero";
>       .
>       .
>       .
>
> y el compilador me bota el siguiente error:
>
> " expected constructor, destructor, or type conversion before '=' token"
>
> ¿ Que puedo estar haciendo mal ?
> Gracias de antemano
>
>
> Rodolfo
>   
En principio veo dos fallos:
-Estás haciendo Tiempo::aMeses[0] = "Enero"; pero como aMeses[0] es 
privado, no tendrías acceso.
-No defines el espacio de almacenamiento de Tiempo::aMeses Cuando 
declaras miembros estáticos hace falta que en un .CPP pongas:

char* Tiempo::aMeses[12];


Si lo que quieres es asignar los meses en la inicialización usa char* 
Tiempo::aMeses[12] = {"Enero", "Febrero" ...};
(el código que pones para rellenarlo sólo es válido dentro de una función).




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