Énoncé

Écrire une classe Vecteur permettant de représenter et manipuler des vecteurs à composantes réelles de taille maximum fixée à l'initialisation de chaque vecteur, et offrant les services suivants (nous supposons que v est un vecteur quelconque de taille n): Tester alors le petit programme suivant:
void testAffectation () {
  Vecteur v1(10), v2(10);
  cout << "saisie des 10 composantes de v1 : "; cin >> v1;
  v2 = v1;
  cout << "v1 = " << v1 << ", v2 = " << v2 << endl;
  v1[2] = -1.0;
  cout << "Apres modification de v1[2], nous avons :" << endl;  
  cout << "v1 = " << v1 << ", v2 = " << v2 << endl; };
Que s'est-il passé ? Expliquer le problème, puis faire le nécessaire afin de remédier au problème ; tester alors:
void fonc(Vecteur v) { v[3] = -1.0; cout << "v = " << v << endl; };

void testPassageParValeur () {
  Vecteur v1(10);
  cout << "saisie des 10 composantes de v1 : "; cin >> v1;
  cout << "v1 = " << v1 << ", ";
  fonc(v1);
  cout << "Apres appel de fonc(v1), nous avons v1 = " << v1 << endl; };
Que s'est-il passé ? Expliquer le problème, puis faire le nécessaire afin de remédier au problème.

Solution