【发布时间】:2012-08-01 11:08:51
【问题描述】:
来自 C,Accelerated C++ 第 5 章中的这个例子引起了我的注意:
vector<Student_info> extract_fails(vector<Student_info>& students) {
vector<Student_info> pass, fail;
for (vector<Student_info>::size_type i = 0; i != students.size(); ++i)
if (fgrade(students[i]))
fail.push_back(students[i]);
else
pass.push_back(students[i]);
students = pass;
return fail;
}
由于返回了fail,我知道它是一个局部变量不是问题。但是为什么pass 能够脱离本地范围呢?
【问题讨论】: