Ich habe mit Referenzen gespielt (ich habe immer noch Probleme in dieser Hinsicht).Mache ich hier etwas falsch (Referenzen in C++)?
1- Ich mag wäre wissen, ob dies ein akzeptabler Code ist:
int & foo(int &y)
{
return y; // is this wrong?
}
int main()
{
int x = 0;
cout << foo(x) << endl;
foo(x) = 9; // is this wrong?
cout << x << endl;
return 0;
}
2- Auch das ist aus einer Probe der Prüfung: In diesem Code
Week & Week::highestSalesWeek(Week aYear[52])
{
Week max = aYear[0];
for(int i = 1; i < 52; i++)
{
if (aYear[i].getSales() > max.getSales())
max = aYear[i];
}
return max;
}
Es geht um den Fehler fragt , auch wie man es repariert.
Meine Vermutung ist, dass es eine lokale Referenz zurückgibt. Die Lösung ist:
Week & max = aYear[0];
Ist das richtig/genug?
Sie hatten Recht. Ich verbeugte mich auf die beschämende Weise, lol – zildjohn01
+1 für den Bogen, aber ich stimme etwas nicht überein: Es ist nichts beschämend zu lernen. Du wirst diesen Fehler nie wieder machen. :-) – Thanatos
Warum einen Zeiger? Eine lokale Referenz scheint vorzuziehen. –