练习6.36
编写一个函数的声明,使其返回数组的引用并且该数组包含10个string对象。不要使用位置返回类型、decltype或者类型别名。
解答:
string[10]& fun();
string (& fun())[10];
练习6.37
为上一题的函数在写三个声明,一个使用类型别名,另一个使用位置返回类型,最后一个使用decltyoe关键字。你觉得哪种形式最好?为什么?
解答:
(1) typedef string arrT[10];
arrT& fun();
(2) auto fun() -> string(&)[10];
(3) string[10] arr ={""};
decltype(arr) &fun();
这里位置返回的方式应该是比较好的,但是不大容易理解。
如果需要考虑易读性,那么decltype的形式,是很不错的
练习6.38
修改arrPtr函数,使其返回数组的引用。
解答:
decltype(odd) &arrPtr(int i){
return (i%2)? odd : even;
}