练习6.36:编写一个函数的声明,使其返回函数的引用并且该函数包含10个string对象。不要使用尾置返回类型、decltype或者类型别名。
答:
typedef string str[10];
str &func(string s);
练习6.37:为上一题的函数再写三个声明,一个使用类型别名,另一个使用尾置返回类型、最后一个使用decltype关键字。你觉得哪种形式最好,为什么?
答:
a.using str = string[10];
str &func(string s);
b.string func(string s)->&stirng[10]
c. string str[10]={,,,,,};
decltype(str) &fun(string s)
练习6.38:修改arrPtr函数,使其返回数组的引用。
答:
int odd[] = {1,3,5,7,9};
Int even[] = {0,2,4,6,8}
decltype(odd) (&arrPtr)(int i)
{
Return (i %2) ? odd : even;
}