是否允许通过引用传递数组?
void foo(double& *bar) 似乎我的编译器说不。为什么?通过引用传递数组的正确方法是什么?还是可以解决?我有一个数组参数,我的方法应修改该参数,然后再检索。另外,我可以使该数组成为一个类成员,可以很好地工作,但是它对我代码的其他部分有很多缺点(我想避免)。
谢谢并恭祝安康。 问题来源于stack overflow
数组只能通过引用传递,实际上:
void foo(double (&bar)[10]) { } 这样可以防止您执行以下操作:
double arr[20]; foo(arr); // won't compile 为了能够将任意大小的数组传递给foo,使其成为模板并在编译时捕获该数组的大小:
template<typename T, size_t N> void foo(T (&bar)[N]) { // use N here } 你应该认真考虑使用std::vector,或者如果你有一个编译器,支持C ++ 11 std::array。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。