Ole*_*siy 1 c++ arrays reference c++11
对不起,如果这是一个非常愚蠢的问题,但由于某种原因,我无法理解如何做到这一点.
我试着编写对我来说最有意义的代码,但它不起作用:
int numbers[10]{};
int& numbers_ref { numbers }; // nope
int numbers_ref& { numbers }; // nope
int& numbers_ref { &numbers }; // nope
int numbers_ref& { &numbers }; // nope
Run Code Online (Sandbox Code Playgroud)
编辑:我尝试使用[]但我仍然无法使用它而不使用auto:
int& numbers_ref[] { numbers }; // nope
(int numbers_ref[])& { numbers }; // nope
(int numbers_ref[10]) & { numbers }; // nope
int []numbers_ref& { &numbers }; // nope
Run Code Online (Sandbox Code Playgroud)
我可以获得参考的唯一方法是P0W说:
auto& numbers_ref= numbers; // yay
Run Code Online (Sandbox Code Playgroud)
PS 谢谢克里斯,这正是我想要的,但无法猜出语法:
int (&numbers_ref)[10] = numbers; // exactly right!
Run Code Online (Sandbox Code Playgroud)
typedef int numbers_type[10];
numbers_type& numbers_ref = numbers;
Run Code Online (Sandbox Code Playgroud)
编辑:(由克里斯建议)
int (&numbers_ref) [10] = numbers; // If you don't want typedef
Run Code Online (Sandbox Code Playgroud)
在C++ 11中:
auto& numbers_ref= numbers;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
140 次 |
| 最近记录: |