[C con Clase] CLASES Y STATIC

rodolfo rosso paz rodolforossopaz en hotmail.com
Jue Mayo 24 18:55:35 CEST 2007


Hola Programante.

Ya me funciono con eso de poner en fecha.cpp

char* Tiempo::aMeses[12] = {"Enero", "Febrero" ...};

Lo de privado no era problema porque la estoy usando dentro del ambito de la 
clase al poner el
prefijo Tiempo::

Muchas gracias, de nuevo.

Rodolfo



>From: Programante <programante en gmail.com>
>Reply-To: Lista de correo sobre C y C++ <cconclase en listas.conclase.net>
>To: Lista de correo sobre C y C++ <cconclase en listas.conclase.net>
>Subject: Re: [C con Clase] CLASES Y STATIC
>Date: Thu, 24 May 2007 13:20:12 +0200
>
>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).
>
>_______________________________________________
>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

_________________________________________________________________
MSN Amor: busca tu ½ naranja http://latam.msn.com/amor/





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