Wieso ist man auf Freunde angewiesen?

Die Frage, wieso man das neue Schlüsselwort benötigt, wird bereits an einem einfachen Beispiel sehr gut deutlich.

Beispiel:

Eine mögliche Lösung des Problems könnte folgende Funktion darstellen:

  vektor multipliziere(const matrix& A, const vektor& x)
  {
      vektor b;
      for (int i=0; i<3; i++) {
          b.elem(i)=0;
          for (int j=0; j<3; j++)
              b.elem(i) += A.elem(i,j) * x.elem(j);
      }
      return b;
  }

Diese Lösung besitzt jedoch einen gravierenden Nachteil: sie ist höchst ineffizient!