我一直在玩弄引用(我仍然有这方面的问题)。我在这里做错了什么(在C++中的引用)?
1-我想知道这是一个可接受的代码:
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-而且这是从考试样品:
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;
}
它将询问关于该错误在此代码,还有如何解决它。
我的猜测是它返回一个本地引用。 修复程序为:
Week & max = aYear[0];
这是正确的吗?
你说得对。我鞠躬可耻的方式,大声笑 – zildjohn01 2010-06-12 22:20:29
+ 1的弓,但我不同意轻微:学习没有什么可耻的。你永远不会再犯这个错误。 :-) – Thanatos 2010-06-12 22:22:50
为什么要涉及一个指针?本地参考似乎更可取。 – 2010-06-12 22:24:07