C ++ - передать массив по ссылке - PullRequest
0 голосов
/ 18 марта 2012

что делать, если я хочу передать массив по ссылке?Массив - это указатель на его первый элемент, и я хочу передать «весь массив» по ​​ссылке.Если я определяю

void someFunction(double& adouble){...}

, тогда adouble - это ссылка на двойное число, а не массив с двойными.указатель на двойной или массив, но он не передается по ссылке, верно?

Спасибо и всего наилучшего

Ответы [ 3 ]

4 голосов
/ 18 марта 2012

Для определенного размера:

void foo(double (&array)[100]);

Для любого размера:

template <size_t N>
void foo(double (&array)[N]);
2 голосов
/ 18 марта 2012

Почему бы и нет:

void foo(double *& bar)
0 голосов
/ 06 апреля 2016

Другая возможность - использовать структуру в качестве оболочки для передачи массива, что может сделать ее более удобной в некоторых случаях.Пример:

const int N = 100;

struct ArrayWrapper
{
  double adouble[N];
};

void foo(ArrayWrapper& wrapper)
{
  // ...
}
...