}
template T vect::operator [] (int i) const
{ return adr[i] ;
}
template ostream & operator << (ostream & sortie, vect & v)
{ sortie << "<" ;
int i ;
for (i=0 ; i
sortie << ">" ;
return sortie ;
}
À titre indicatif, voici un petit programme utilisant notre patron, accompagné du résultat
fourni par son exécution :
#include "vectgen.h"
#include
using namespace std ;
main()
{ int i ;
vect v1(5) ; vect v2(10) ;
for (i=0 ; i<5 ; i++) v1[i] = i ;
cout << "v1 = " << v1 << "\n" ;
for (i=0 ; i<10 ; i++) v2[i] = i*i ;
cout << "v2 = " << v2 << "\n" ;
v1 = v2 ;
cout << "v1 = " << v1 << "\n" ;
vect v3 = v1 ;
// vect v3 = v1 ; // serait rejeté
cout << "v3 = " << v3 << "\n" ;
// const vect w(3) ; w[2] = 5 ; // conduit bien à erreur compilation
// vect v4(5) ; v4 = v1 ; // conduit bien à erreur compilation
}
v1 = <0 1 2 3 4 >
v2 = <0 1 4 9 16 25 36 49 64 81 >
v1 = <0 1 4 9 16 25 36 49 64 81 >
v3 = <0 1 4 9 16 25 36 49 64 81 >
369
template
{ return adr[i] ;
}
template
{ sortie << "<" ;
int i ;
for (i=0 ; i
return sortie ;
}
À titre indicatif, voici un petit programme utilisant notre patron, accompagné du résultat
fourni par son exécution :
#include "vectgen.h"
#include
using namespace std ;
main()
{ int i ;
vect
for (i=0 ; i<5 ; i++) v1[i] = i ;
cout << "v1 = " << v1 << "\n" ;
for (i=0 ; i<10 ; i++) v2[i] = i*i ;
cout << "v2 = " << v2 << "\n" ;
v1 = v2 ;
cout << "v1 = " << v1 << "\n" ;
vect
// vect
cout << "v3 = " << v3 << "\n" ;
// const vect
// vect
}
v1 = <0 1 2 3 4 >
v2 = <0 1 4 9 16 25 36 49 64 81 >
v1 = <0 1 4 9 16 25 36 49 64 81 >
v3 = <0 1 4 9 16 25 36 49 64 81 >
369
