Truc idiot : définition d'une constante dans une classe [C++] - Programmation
Marsh Posté le 21-08-2001 à 18:09:28
Donne la valeur ds le constructeur..
Ou moi je ferais
#define toto 10
si vraiment la valeur sera jamais changée..
Marsh Posté le 21-08-2001 à 18:13:08
Oui merci c'est qce que je viens de voir ! Pas terrible quand on a plusieurs constructeurs. Par contre le #define m'embête ou la déclaration hors classe aussi car il s'agit d'une constante propre à la classe, en l'occurrence la dimension d'un tableau private.
Marsh Posté le 21-08-2001 à 18:24:49
C'est marrant par contre, il me refuse l'emploi de la constante ensuite pour définir la dimension d'un tableau membre de la classe un peu plus loin...
C'est logique, car la constante n'est pas définie à la compilation de ce tableau. Mais bon... Faudrait que j'alloue dynamiquement le tableau dans le cosntructeur... Pas très performant ça.
[edtdd]--Message édité par Drums--[/edtdd]
Marsh Posté le 21-08-2001 à 20:43:05
Mets un static const int
[edtdd]--Message édité par Verdoux--[/edtdd]
Marsh Posté le 22-08-2001 à 08:45:16
Dans le .h
class truc
{
private:
const int toto;
public:
truc();
};
et dans le .cpp
truc::truc():
toto(10)
{}
Marsh Posté le 22-08-2001 à 11:30:20
darthguy ça n´apporte rien il faut qd même le faire pour chaque constructeur...
Moi je suis pour le #define.. Et c propre à la classe si tu as tjrs 1 include file par classe..
Marsh Posté le 21-08-2001 à 18:01:28
J'ai pas mon stroupstroup sous la main : une question con en C++ : je n'arrive pas à définir une constante entière privée dans une classe. Typiquement si je fais :
class truc
{
private:
const int toto = 10;
};
le compilo gueule car il prend ça pour une tentative de définition de fonction virtuelle pure !! Je le comprends mais ça m'énerve !
Une idée ?