练习6.31
什么情况下返回的引用无效?什么情况下返回常量的引用无效?
当返回的引用的对象是局部变量时,返回的引用无效;当我们希望返回的对象被修改时,返回常量的引用无效。
练习6.32
下面的函数合法吗?如果合法,说明其功能;如果不合法,修改其中的错误并解释原因。
int &get(int *array, int index) { return array[index]; }
int main()
{
int ia[10];
for (int i = 0; i != 10; ++i)
get(ia, i) = i;
}
合法。get 函数根据索引取得数组中的元素的引用。
练习6.33
编写一个递归函数,输出vector对象的内容。
#include <iostream>
#include <vector>
using namespace std;
using Iter = vector<int>::const_iterator;
void print(Iter first, Iter last)
{
if (first == last)
{
cout