[C++] Truc idiot : définition d'une constante dans une classe

Truc idiot : définition d'une constante dans une classe [C++] - Programmation

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 ?

Reply

Marsh Posté le 21-08-2001 à 18:01:28   

Reply

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.. :)


---------------
Athlon64 s754 10*200MHz - R9800Pro - 512MB DDR200MHz - ZX6RR - Q2[SupOp] - Tutorial Video: multilangues, multisstitres
Reply

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.

Reply

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]

Reply

Marsh Posté le 21-08-2001 à 20:43:05    

Mets un static const int

 

[edtdd]--Message édité par Verdoux--[/edtdd]

Reply

Marsh Posté le 22-08-2001 à 02:02:28    

ou un enum.

Reply

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)
{}

Reply

Marsh Posté le 22-08-2001 à 10:09:42    

Thx :)

Reply

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.. ;)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed