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


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
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

---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
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?


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
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