Bonjour,
J'ai un code en C++ dans lequel je dois trouver les erreurs, le voici :
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 :
int main ( int argc, char *argv[])
Merci de bien vouloir m'aiguiller
Partager