6.31
当引用为局部变量时,返回的引用无效。
6.32
合法
6.33
#include <iostream>
#include <vector>
using namespace std;
void print(vector<int> &ivec, unsigned num)
{
unsigned sz = ivec.size();
if (!ivec.empty() && num < sz)
{
cout << ivec[num] << " ";
print(ivec, num + 1);
}
}
int main()
{
vector<int> ivec = {1,2,3,4,5,6,7,8,9,10};
print(ivec, 0);
return 0;
}
6.34
当参数为负时,会无限递归
6.35
会产生未定义的值
6.36
string (&func())[10]
6.37
类型别名
typedef string arr[10]
arr& func();
使用尾置类型
auto func()->string(&)[10]
decltype关键字
decltype(str) &func();
6.38
int odd[] = {1,3,5,7,9};
int even[] = {0,2,4,6,8};
decltype(odd) &arrPtr(int i)
{
return (i%2) ? odd : even;
{
6.39
a.非法的,顶层const不影响传入函数的对象,所以无法区分两个形参
b.非法的,不允许两个函数除了返回类型以为其他的所有的要素都相同
c.合法的,这两个函数时重载关系
6.40
a.正确,
b.错误,一旦某个形参被赋予了默认值,它后面所有的形参都必须有默认值