這是C++ Primer 5th的練習。我不知道如何解決它?如何返回對十個字符串數組的引用
問題描述爲:
編寫聲明返回到十成一個字符串數組的引用,而無需使用一個尾隨回報,decltype,和或一個類型別名的功能。
我的代碼:
#include <iostream>
#include <string>
std::string (&func(std::string a[])) [10]
{
return a;
}
int main()
{
std::string a[10];
std::string (&b)[10] = func(a);
for (const auto &c : b)
std::cout << c << std::endl;
return 0;
}
編譯錯誤:
e6_36.cc:6:12: error: non-const lvalue reference to type 'std::string [10]' cannot bind to a value of unrelated type 'std::string *' (aka 'basic_string, allocator > *')
return a;
^
1 error generated.
你檢查出[這個答案](http://stackoverflow.com/a/5399014/1214731)? – tmpearce
你已經得到了正確的返回類型。只是您返回的值不是正確的類型,因爲您的參數類型是錯誤的。 –
要清楚:問題只是要求'std :: string(&func())[10];'。這是一個函數聲明。你試圖進一步提供一個函數定義並給出一些參數,這就是你遇到一些麻煩的地方。 –