C++: Referenzen < Formale Sprachen < Theoretische Inform. < Hochschule < Informatik < Vorhilfe
|
Hallo, ich habe eine Funktion summe geschrieben:
-mind. 1 und max. 3 Parameter vom Typ double werden übergeben
-die tatsächlich übergebenen Werte sind vervierfacht
-Rückgabewert: Summe der tatsächlich übergebenen Werte
(Pointer sind verboten!!)
Das Programm funktioniert auch, aber nur wenn ich GENAU 3 Parameterwerte übergebe. Wenn ich nur 2 übergebe, gibt es eine Fehlermeldung. Das mit den Standartwerten bei Referenzen scheint nicht zu funktionieren....habt ihr eine Idee?
#include <iostream>
using namespace std;
double summe(double& a, double& b, double& c = 0)//C = 0
{ //..Standard-
double a_, b_, c_; //..wert
a_ = a;
b_ = b;
c_ = c;
a = 4*a;
b = 4*b;
c = 4*c;
return (a_+b_+c_);
}
int main()
{
double x,y,z, s;
double& xalias=x;
double& yalias=y;
double& zalias=z;
x=2, y=3, z=1.5;
s = summe(xalias,yalias);//ICH ÜBERGEBE NUR 2 WERTE
cout << x << " " << y << " " << z << " " << s;
cin.get();
}
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 20:20 Di 20.05.2008 | Autor: | matux |
$MATUXTEXT(ueberfaellige_frage)
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 23:31 Mi 04.06.2008 | Autor: | Shurakai |
Hi,
also, wenn du eine Referenz übergibst, übergibst du ja sozusagen die Adresse im Speicher. Da bei jeder Variable diese Adresse anders ist, macht es absolut keinen Sinn eine Referenz "vorzudefinieren". Ist - wie gesagt - immer anders und nicht "vordefinierbar".
|
|
|
|