Bonjour,
Lors de la construction d'un objet de type matrice je fait passer en paramètre une référence de matrice afin de construire une matrice à l'inverse(true->false et false-> true)
Voici un extrait du code
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150 matrice::matrice(matrice& m1) { tab= new cases**[2]; for(int i=0;i<2;i++) { tab[i]=new cases*[2]; for (int j=0;j<2;j++) { if(m1.getinfo(i,j)) tab[i][j] = new cases(false); else tab[i][j]= new cases(false); } } } matrice::matrice() { tab= new cases**[2]; for(int i=0;i<2;i++) { tab[i]=new cases*[2]; for (int j=0;j<2;j++) { tab[i][j]=NULL; } } if(flag==0) { srand((unsigned)(time(&flag)));//initialisation du random seulement pour la création de la première instance de matrice flag++; } int j=1+(int) (6*rand()/(RAND_MAX+1.0)); switch (j) { case 1: tab[0][0]=new cases(true); tab[0][1]=new cases(true); tab[1][0]=new cases(false); tab[1][1]=new cases(false); break; case 2: tab[0][0]=new cases(true); tab[0][1]=new cases(false); tab[1][0]=new cases(true); tab[1][1]=new cases(false); break; case 3: tab[0][0]=new cases(true); tab[0][1]=new cases(false); tab[1][0]=new cases(false); tab[1][1]=new cases(true); break; case 4: tab[0][0]=new cases(false); tab[0][1]=new cases(true); tab[1][0]=new cases(true); tab[1][1]=new cases(false); break; case 5: tab[0][0]=new cases(false); tab[0][1]=new cases(true); tab[1][0]=new cases(false); tab[1][1]=new cases(true); break; case 6: tab[0][0]=new cases(false); tab[0][1]=new cases(false); tab[1][0]=new cases(true); tab[1][1]=new cases(true); } } filtre::filtre(int n) { tab= new matrice**[128]; for(int i=0;i<128;i++) { tab[i]=new matrice*[128]; for (int j=0;j<128;j++) { if(i%2==0) { tab[i][j]= new matrice; } else { tab[i][j]= new matrice(tab[i-1][j]); } } } } class cases { protected: bool coul; public: cases(); cases(bool); bool getinfo(); void setinfo(bool); }; class matrice { protected: static long flag; cases ***tab; int nb; public: matrice(); matrice(matrice&); matrice toggle(); bool getinfo(int,int); matrice& operator=(matrice&); void write(); ~matrice(); }; class filtre { protected: matrice ***tab; int nb; public: filtre(int); void write(); void Create_Save_BMP(); };
Voici l'erreur que me retourne visual c++
Je pense que le problème viens de mon passage par référence mais comme je n'en ai utilisé j'ai du mal avec les références.C:\Documents and Settings\mpastore\Desktop\c++\dithering\projet\projetDlg.cpp(476) : error C2664: '__thiscall matrice::matrice(class matrice &)' : cannot convert parameter 1 from 'class matrice *' to 'class matrice &'
Merci de votre aide
Partager