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
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


0