Hello ,


I tried but with no success to pass a TWO DIMENSIONNED ARRAY , here called M, rows =cloumns=10,as an ARGUMENT for all the classes functions that I use in my program.
Even after reading the articles posted in this website I could not make it .
Here is my code:
Qt Code:
  1. // headers
  2. #ifndef FENPRINCIPALE_H
  3. #define FENPRINCIPALE_H
  4. #include <QtGui>
  5. class FenPrincipale : public QWidget
  6. {
  7. Q_OBJECT
  8. public:
  9. FenPrincipale();
  10.  
  11. private slots:
  12. void genererCC(int **);
  13. void paintEvent(QPaintEvent *,int **);
  14.  
  15. private:
  16. QPainter *painter;
  17. int M [10][10];
  18. QPushButton *generer;
  19.  
  20. };
  21. #endif
  22. /////////////////Second Header//////////////////
  23. #ifndef FENCC_H
  24. #define FENCC_H
  25. #include <QtGui>
  26. class FenCC : public QDialog
  27. {
  28. public:
  29. FenCC ( QWidget *parent , int **);
  30. private:
  31. QPushButton *fermer;
  32. QPainter *painter;
  33. private slots:
  34. void paintEvent (QPaintEvent *, int **);
  35. };
  36. #endif
  37.  
  38. ///FenPrincipale.cpp
  39. #include "FenPrincipale.h"
  40. #include "FenCC.h"
  41. FenPrincipale::FenPrincipale()
  42. { int o,p;
  43. for (o=0; o<10; o++)
  44. {
  45. for (p=0; p<10; p++)
  46. {
  47. M[o][p]=0;
  48. }
  49. }
  50. M[0][3]=1;
  51. M[0][9]=1;
  52. M[2][6]=1;
  53. M[3][5]=1;
  54. M[5][3]=1;
  55. M[2][4]=1;
  56. M[4][2]=1;
  57. paintEvent(e,M);
  58. generer = new QPushButton("&Générer !",this);
  59. connect(generer, SIGNAL(clicked()), this, SLOT(genererCC(M)));
  60. }
  61. void FenPrincipale::genererCC(int **M)
  62. {
  63. FenCC *fenetreCC = new FenCC( this , M);
  64. fenetreCC->exec();
  65. }
  66. void FenPrincipale::paintEvent(QPaintEvent *e, int **M)
  67. {
  68. QPainter painter(this);
  69. int tour=0;
  70. int x=10;
  71. int y=10;
  72. int Num_Sommet=0;
  73. int T_Coordonnees [10][3];
  74. for (Num_Sommet=0; Num_Sommet<10; Num_Sommet++)
  75. {
  76. (T_Coordonnees[Num_Sommet][0])=x;
  77. (T_Coordonnees[Num_Sommet][1])=y;
  78. (T_Coordonnees[Num_Sommet][2])=tour;
  79. if (tour==0)
  80. {
  81. x+=35;
  82. tour=1;
  83. }
  84. else
  85. {
  86. y+=55;
  87. tour=0;
  88. }
  89. }
  90. int w1=0;
  91. int w2=0;
  92. int cpt=10;
  93. Num_Sommet=0;
  94. for (Num_Sommet=0; Num_Sommet<10; Num_Sommet++)
  95. {
  96. if ((T_Coordonnees[Num_Sommet][2])==1)
  97. {
  98. if(w1==0)
  99. {
  100. (T_Coordonnees[Num_Sommet][0])=((T_Coordonnees[Num_Sommet][0])+500) ;
  101. w1=1;
  102. }
  103. else
  104. {
  105. if(w1==1)
  106. {
  107. (T_Coordonnees[Num_Sommet][0])=((T_Coordonnees[Num_Sommet][0])+250+cpt) ;
  108. w1=0;
  109. cpt=cpt+15;
  110. }
  111. }
  112. if (Num_Sommet==9)
  113. {
  114. (T_Coordonnees[Num_Sommet][0])=((T_Coordonnees[Num_Sommet][0])+45) ;
  115. }
  116.  
  117. }
  118. else
  119. {
  120. if(w2==0)
  121. {
  122. (T_Coordonnees[Num_Sommet][0])=(T_Coordonnees[Num_Sommet][0])+200;
  123. w2=1;
  124. }
  125. else
  126. {
  127. (T_Coordonnees[Num_Sommet][0])=(T_Coordonnees[Num_Sommet][0])+100+cpt;
  128. w2=0;
  129. cpt=cpt+15;
  130. }
  131.  
  132. if (Num_Sommet==4)
  133. {
  134. (T_Coordonnees[Num_Sommet][0])=((T_Coordonnees[Num_Sommet][0])+45) ;
  135. }
  136. }
  137. painter.drawEllipse((T_Coordonnees[Num_Sommet][0]), (T_Coordonnees[Num_Sommet][1]), 30.0, 30.0);
  138.  
  139.  
  140. }
  141.  
  142. int i,j;
  143. for (i=0; i<10; i++)
  144. {
  145. for (j=0; j<10; j++)
  146. {
  147. if (M[i][j]==1)
  148. {
  149. painter.drawLine((T_Coordonnees[i][0]+20),(T_Coordonnees[i][1]),(T_Coordonnees[j][0]+20),(T_Coordonnees[j][1]));
  150. }
  151. }
  152. }
  153.  
  154.  
  155.  
  156. for (i=0; i<10; i++)
  157. {
  158. for (j=0; j<10; j++)
  159. {
  160. if ((M[i][j]==1) && (M[j][i]==1))
  161. {
  162. painter.drawLine((T_Coordonnees[i][0]+20),(T_Coordonnees[i][1]),(T_Coordonnees[j][0]+20),(T_Coordonnees[j][1]));
  163. if( (T_Coordonnees[i][1]>45)||(T_Coordonnees[j][1]>45) )
  164. {
  165. painter.drawLine(((T_Coordonnees[i][0]+20)-10),(T_Coordonnees[i][1]),((T_Coordonnees[j][0]+20)-10),(T_Coordonnees[j][1]));
  166. }
  167. else
  168. {
  169. painter.drawLine((T_Coordonnees[i][0]+20),(T_Coordonnees[i][1]+30),(T_Coordonnees[j][0]+20),(T_Coordonnees[j][1]+30));
  170. }
  171. }
  172. }
  173. }
  174.  
  175.  
  176.  
  177. Num_Sommet=0;
  178. for (Num_Sommet=0; Num_Sommet<10; Num_Sommet++)
  179. {
  180. QPoint point = QPoint( (((T_Coordonnees[Num_Sommet][0])+15)), ((T_Coordonnees[Num_Sommet][1])+15) );
  181. QString str;
  182. str.setNum(Num_Sommet);
  183. painter.drawText( point,str);
  184.  
  185. }
  186. }
  187.  
  188. ///////FenCC.cpp
  189. #include "FenCC.h"
  190. FenCC::FenCC( QWidget *parent = 0 , int **M) :QDialog(parent)
  191. {
  192. paintEvent(c,M);
  193. fermer = new QPushButton("Fermer",this);
  194. connect(fermer, SIGNAL(clicked()), this, SLOT(accept()));
  195.  
  196. }
  197. void FenCC::paintEvent(QPaintEvent *c ,int **M)
  198. {
  199. QPainter painter(this);
  200. int tour=0;
  201. int x=10;
  202. int y=10;
  203. int Num_Sommet=0;
  204. int T_Coordonnees [10][3];
  205. for (Num_Sommet=0; Num_Sommet<10; Num_Sommet++)
  206. {
  207. (T_Coordonnees[Num_Sommet][0])=x;
  208. (T_Coordonnees[Num_Sommet][1])=y;
  209. (T_Coordonnees[Num_Sommet][2])=tour;
  210. if (tour==0)
  211. {
  212. x+=35;
  213. tour=1;
  214. }
  215. else
  216. {
  217. y+=55;
  218. tour=0;
  219. }
  220. }
  221. int w1=0;
  222. int w2=0;
  223. int cpt=10;
  224. Num_Sommet=0;
  225. for (Num_Sommet=0; Num_Sommet<10; Num_Sommet++)
  226. {
  227. if ( (T_Coordonnees[Num_Sommet][2])==1)
  228. {
  229. if(w1==0)
  230. {
  231. (T_Coordonnees[Num_Sommet][0])=((T_Coordonnees[Num_Sommet][0])+500) ;
  232. w1=1;
  233. }
  234. else
  235. {
  236. if(w1==1)
  237. {
  238. (T_Coordonnees[Num_Sommet][0])=((T_Coordonnees[Num_Sommet][0])+250+cpt) ;
  239. w1=0;
  240. cpt=cpt+15;
  241. }
  242. }
  243. if (Num_Sommet==9)
  244. {
  245. (T_Coordonnees[Num_Sommet][0])=((T_Coordonnees[Num_Sommet][0])+45) ;
  246. }
  247.  
  248. }
  249. else
  250. {
  251. if(w2==0)
  252. {
  253. (T_Coordonnees[Num_Sommet][0])=(T_Coordonnees[Num_Sommet][0])+200;
  254. w2=1;
  255. }
  256. else
  257. {
  258. (T_Coordonnees[Num_Sommet][0])=(T_Coordonnees[Num_Sommet][0])+100+cpt;
  259. w2=0;
  260. cpt=cpt+15;
  261. }
  262. if (Num_Sommet==4)
  263. {
  264. (T_Coordonnees[Num_Sommet][0])=((T_Coordonnees[Num_Sommet][0])+45) ;
  265. }
  266. }
  267. painter.drawEllipse((T_Coordonnees[Num_Sommet][0]), (T_Coordonnees[Num_Sommet][1]), 30.0, 30.0);
  268. }
  269. int i,j;
  270. for (i=0; i<10; i++)
  271. {
  272. for (j=0; j<10; j++)
  273. {
  274. if (M[i][j]==1)
  275. {
  276. painter.drawLine((T_Coordonnees[i][0]+20),(T_Coordonnees[i][1]),(T_Coordonnees[j][0]+20),(T_Coordonnees[j][1]));
  277. }
  278. }
  279. }
  280. for (i=0; i<10; i++)
  281. {
  282. for (j=0; j<10; j++)
  283. {
  284. if ((M[i][j]==1) && (M[j][i]==1))
  285. {
  286. painter.drawLine((T_Coordonnees[i][0]+20),(T_Coordonnees[i][1]),(T_Coordonnees[j][0]+20),(T_Coordonnees[j][1]));
  287. if( (T_Coordonnees[i][1]>45)||(T_Coordonnees[j][1]>45) )
  288. {
  289. painter.drawLine(((T_Coordonnees[i][0]+20)-10),(T_Coordonnees[i][1]),((T_Coordonnees[j][0]+20)-10),(T_Coordonnees[j][1]));
  290. }
  291. else
  292. {
  293. painter.drawLine((T_Coordonnees[i][0]+20),(T_Coordonnees[i][1]+30),(T_Coordonnees[j][0]+20),(T_Coordonnees[j][1]+30));
  294. }
  295. }
  296. }
  297. }
  298. Num_Sommet=0;
  299. for (Num_Sommet=0; Num_Sommet<10; Num_Sommet++)
  300. {
  301. QPoint point = QPoint( (((T_Coordonnees[Num_Sommet][0])+15)), ((T_Coordonnees[Num_Sommet][1])+15) );
  302. QString str;
  303. str.setNum(Num_Sommet);
  304. painter.drawText( point,str);
  305. }
  306. }
  307. ///////////////////main.cpp
  308. #include <QApplication>
  309. #include "FenPrincipale.h"
  310. int main(int argc, char* argv[])
  311. {
  312. QApplication app(argc, argv);
  313. FenPrincipale fenetre;
  314. fenetre.show();
  315. return app.exec();
  316. }
To copy to clipboard, switch view to plain text mode 
I respectly repeat that the most important is not this code , but only how to declare the two dimensionned array in the headers and use it in the ".cpp" extensionned files.
I apreciate the time and attention given to this message.
Thank you.