Bonjour,

J'ai un code en C++ dans lequel je dois trouver les erreurs, le voici :

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
typedef double T;
class A{
public:
int n;
T *v;
A(int nn=0):n(nn),v(n>0 ? new T[n]:0) {}
T& operator [] (int i) {
assert(v && (i>=0) && (i<n) );
return v[i];
}
 
~A() { if (v) delete [] v; }
 
}
 
int main( int argv, const char *[])
{
A a(10), b(10);
for (int i=0;i<10;i++)
a[i]=i;
b=a;
A c(b);
assert( c[4]==4);
return 0;
}
La seule erreur que j'ai trouvée pour l'instant c'est le ';' qui manque après l'accolade de fin de classe.
Dans le constructeur par exemple, je comprends pas ce que signifie cette ligne :
Je vois bien que c'est pour construire un tableau de type T et qui a nn éléments, mais c'est quoi le '?' ?
Pareil dans le main, j'ai jamais vu des const char *[] je me dis que l'erreur vient peut-etre de là sachant que j'ai toujours vu des main du type :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
int main ( int argc, char *argv[])
Merci de bien vouloir m'aiguiller