【发布时间】:2012-04-17 23:25:36
【问题描述】:
这是否允许通过引用传递数组?
void foo(double& *bar)
似乎我的编译器说不。为什么?通过引用传递数组的正确方法是什么?还是变通?我有一个数组参数,我的方法应该修改,然后我应该检索。或者,我可以让这个数组成为一个类成员,它工作得很好,但它对我的代码的其他部分有很多缺点(我想避免)。
感谢和问候。
【问题讨论】:
-
您是否考虑过使用
std::vector或类似名称? -
@moooeeeep
std::vector如果大小是动态/未知的,显然是优越的,但在大小始终相同的情况下,这将是矫枉过正,取而代之的是std::array解决了语法上的丑陋,而还赋予价值语义。 -
为什么不只是 void foo(double bar[ ]) ?如果您愿意,您还可以将数组的长度提供为 void foo(double bar[2])。除非对于复杂类型,需要避免使用复制构造函数。
标签: c++ arrays pointers reference pass-by-reference