如果我想通过ref传递数组怎么办?数组是指向其第一个元素的指针,我想通过ref传递'整个数组'。如果我定义
void someFunction(double& adouble){...}
然后adouble是一个double的引用,而不是带有双精度的数组。
如果我定义
void anotherFunction(double* adouble){...}
然后我的参数是一个指向double或数组的指针,但它不是由ref传递的,对吗?
谢谢和问候
答案 0 :(得分:4)
具体尺寸:
void foo(double (&array)[100]);
任何尺寸:
template <size_t N>
void foo(double (&array)[N]);
答案 1 :(得分:2)
为什么不:
void foo(double *& bar)
答案 2 :(得分:0)
另一种可能性是使用struct作为包装器来传递数组,这可以使它在某些情况下更方便。一个例子:
const int N = 100;
struct ArrayWrapper
{
double adouble[N];
};
void foo(ArrayWrapper& wrapper)
{
// ...
}