声明一个返回数组指针的函数,大致分为四种方法:普通声明、使用尾置返回类型声明、使用decltype声明、使用类型别名声明。
问题:编写一个函数声明,使其返回数组的引用并且该数组包含10个string对象。
一、普通声明:
string (*fun(string i))[10];
尾置返回类型是在C++11新标准中的方法,任何函数的定义都可以使用尾置返回,但这种形式对于返回类型比较复杂的函数最有效。
auto fun(string i)->string(*)[10];
三、使用decltype声明:
string arr[10]{ "one","two","three","four","five","six","seven","eight","nine","ten" };
decltype(arr) *arrptr(string i);
四、使用类型别名声明:
typedef string arr[10];
using arr = string[10];
arr* fun(string i);