titel
-
nachrichtentext
-
Torboe schrieb:
da hab ich mich dann gefragt, warum dazu nicht ein * vor x und y in der zeile
summe += x[i] * y[i];
gesetzt werden muss? ich will doch auf den inhalt zugreifen oder?
Die Funktion erwartet ein T*. Wenn du den Indexoperator anwendest, dereferenzierst du automatisch. Es gilt folgende Äquivalenz:
ptr[i] == *(ptr+i)
Torboe schrieb:
zu 2) hab ich leider keine ahnung. verstehe die frage nicht. deswegen bin ich eigentlich hier ;).
Die ist eigentlich recht einfach. Überleg dir halt, welche Operatoren du in der Funktion für den Typen T voraussetzt. Zum Beispiel
operator*
.Übrigens finde ich die letzten beiden Parameter ziemlich fragwürdig. Übergib doch einfach einen
int
mit der Grösse. Du brauchst auch keine Referenz, da sich die Grösse ja nicht ändert.
-
nachrichtentext
-
Torboe schrieb:
gut, der vorletzte parameter müsste kein T sein, sondern könnte int sein. Aber beim letzten parameter: wie soll ich denn die anzahl zählen, wenn nicht durch erhöhen (anz++) in der schleife?
Er darf vorallem kein T sein.
Stell dir mal vor T wäre double oder complex. unsigned oder size_t wären hier der richtige Typ
und zu anz:
Wo steht denn dass du die anzahl brauchst?anz ist am ende sowieso immer gleich groß wie zahl1...
PS:
2) ist korrekt.
fast zumindest: du brauchst den operator+= und nicht den operator+
Das sind 2 unterschiedliche operatoren (die idR das selbe machen - aber eben 2 unterschiedliche operatoren).
-
nachrichtentext