Comment mettre une constante dans la partie private d'une classe??

Comment mettre une constante dans la partie private d'une classe?? - C++ - Programmation

Marsh Posté le 29-07-2004 à 13:46:19    

heu g un big probleme,  
class Matrice{
     public:
            void afficher();
     private:
            int a[50][50];
            int nombrecol,nombrelig;
};
et je voudrais une fonction qui remplis le a[50][50] de la matrice avec un tableau mais qui soit b[nombrecol][nombrelig], le seul probleme c'est que pour un tableau il faut des constantes et la elle ne le sont pas alors quel est la solution?
merci


---------------
!jb!
Reply

Marsh Posté le 29-07-2004 à 13:46:19   

Reply

Marsh Posté le 29-07-2004 à 13:48:45    

int * a
a = new int[2500]
 
?


---------------
I mean, true, a cancer will probably destroy its host organism. But what about the cells whose mutations allow them to think outside the box, and replicate and expand beyond their wildest dreams by throwing away the limits imposed by overbearing genetic r
Reply

Marsh Posté le 29-07-2004 à 13:50:11    

Masklinn a écrit :

int * a
a = new int[2500]
 
?


n'importe quoi...
 
 
static const nbCol = 50 ;


Message édité par jagstang le 29-07-2004 à 13:50:46

---------------
What if I were smiling and running into your arms? Would you see then what I see now?  
Reply

Marsh Posté le 29-07-2004 à 13:53:59    

la solution, un bon bouquin dont les references sont indiquees sur le forum.


Message édité par davidgrenoble le 29-07-2004 à 13:54:48
Reply

Marsh Posté le 29-07-2004 à 13:57:12    

JagStang a écrit :

n'importe quoi...
 
 
static const nbCol = 50 ;


il veut pas nombrecol et nombrelig variables? :sweat:
(enfin ca serait plutot nombrecol*nombrelig)
(pq les tableaux C en 2D ce sont pas des tableaux en 1D pris par séquences?)


Message édité par masklinn le 29-07-2004 à 13:58:48

---------------
I mean, true, a cancer will probably destroy its host organism. But what about the cells whose mutations allow them to think outside the box, and replicate and expand beyond their wildest dreams by throwing away the limits imposed by overbearing genetic r
Reply

Marsh Posté le 29-07-2004 à 14:49:43    

Pourquoi n'utilises-tu pas une classe existante, comme  boost::uBlas ou Blitz++ ?


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
Reply

Marsh Posté le 29-07-2004 à 15:59:47    

quoi?
je cherche en fait a utiliser un element private de ma class matrice qui est variable pour définir une fonction  dans laquel cet valeur doit etre constante genre  
class Matrice{
public:
void manger();
private:
int g;//g est variable!
};
void Matrice::manger(int a[g]){etc...};//g est constant...
 
sinon g pas compris qu'est ce qu'on fait avec boost::ublas???
et sinon g un bon livre mais bon c un cas qui n'est pas traiter ou alors pas comme ca!


Message édité par lunarnet76 le 29-07-2004 à 16:00:49

---------------
!jb!
Reply

Marsh Posté le 29-07-2004 à 17:11:38    

boost::ublas est une classe matrice... c'est déjà tout prêt.
Sinon pour ton truc variable / constant, c'est pas possible. La dimension d'un tableau doit être défini par une constante, et  
    manger(int a[g]);
ça marche pas, on peut pas passer un tableau entier, on le passe par pointeur :
    manger(int * a);
Dans ton cas on a plutot recours aux template.
Regarde dans boost, tu as tout de fait (opérations, affichage, ...)
http://www.boost.org/libs/numeric/ublas/doc/matrix.htm


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
Reply

Marsh Posté le 29-07-2004 à 17:17:26    

pas d'équivalent dispo dans la STL?


---------------
I mean, true, a cancer will probably destroy its host organism. But what about the cells whose mutations allow them to think outside the box, and replicate and expand beyond their wildest dreams by throwing away the limits imposed by overbearing genetic r
Reply

Marsh Posté le 29-07-2004 à 17:45:17    

Si tu te limite à STL, tu pourrais utiliser un std::vector avec une petite adaptation pour une utilisation en 2D.


---------------
Cordialement, Xterm-in'Hate...
Reply

Marsh Posté le 29-07-2004 à 17:45:17   

Reply

Marsh Posté le 30-07-2004 à 01:49:24    

en faite j'essaie de faire tout moi meme, j'en ai aucune utilité et c juste pour apprendre le c++ que j fais ca donc utiliser un truc deja tout fait me sert a rien !!!
Merci quand meme!

Reply

Marsh Posté le 30-07-2004 à 08:03:37    

Au moins, jette un coup d'oeil au code de Boost, si tu veux un modele.


---------------
Cordialement, Xterm-in'Hate...
Reply

Marsh Posté le 30-07-2004 à 08:29:52    

xterminhate a écrit :

Au moins, jette un coup d'oeil au code de Boost, si tu veux un modele.


C'est peut etre pas le plus simple, s'il veut débuter...

Reply

Marsh Posté le 30-07-2004 à 12:32:34    

lunarnet76 a écrit :

en faite j'essaie de faire tout moi meme, j'en ai aucune utilité et c juste pour apprendre le c++ que j fais ca donc utiliser un truc deja tout fait me sert a rien !!!
Merci quand meme!


Eh bien fait le avec un template alors. Autant rendre ta classe générique.


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
Reply

Sujets relatifs:

Leave a Replay

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