C/Visual C - problemas con las ctes de clase

 
Vista:

problemas con las ctes de clase

Publicado por gothmog (12 intervenciones) el 06/02/2003 18:10:09
Hola, estoy teniendo algun problemilla con la declaracion de constantes locales a una clase.

Lo que yo supuse logico y normal era una declaracion tal que asi:

class clase{
private:
const float PI=3.1416;
public:
// etc
};

Cual es problema? Pues que no me deja inicializar un miembro de la clase. Por tanto, tras mucho probar, llegue a hacerlo asi:

class clase{
private:
const float PI;
public:
clase(PI(3.1416));
// etc
};

Esto es, tengo que inicializarla en el constructor. Lo veo rebuscado en exceso. Pq no puedo definir una cte tan facilmente como en otros lenguajes? Si esta fuera una solucion... pues vale, pero ahora me encuentro con otro problema a causa de esta forma tan peculiar de c.

Yo quiero definir un array cuyo tamaño sea una cte: lista[MAX]

Como me las apaño para declararlo? Pq evidentemente no me deja, al no tener un valor la cte. Yo querria un codigo asi:

class clase{
private:
const int MAX = 100;
int [MAX] lista;
public:
//
};

Pero evidentemente no me deja de ninguna de las maneras.

Resumiendo: como declaro las contantes sin necesidad del constructor?

P.D.: Uso CBuilder 5

Gracias por las respuestas
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:problemas con las ctes de clase

Publicado por Endos (58 intervenciones) el 06/02/2003 21:20:26
No se pueden asignar valores directamente a variables que se encuentran dentro de la clase. Como ya has descubierto eso hay que hacerlo desde el constructor.
Contructor{Variable=Valor;}
La incializacion de esta forma es debido a la programacion orientada a objetos.

Para definir constantes y usarlas de la forma que quieres debes hacerlo fuera de la clase:
#define MAX 100

class A
{
private:
nt [MAX] lista;
public:
//
};

Si quieres una constante dentro de la clase:

class Clase
{
const int Contante;
...
}

Clase::Clase() : Constante(1) // Asignar 1 a Constante en el constructor
{
}

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:problemas con las ctes de clase

Publicado por gothmog (2 intervenciones) el 07/02/2003 15:53:29
ok, muchas gracias !
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar