амперсанд ‘& amp;’ оператор в конце параметра

Я нуб, и это мой первый пост.

Что касается&’характер, я понимаю его общее использование в качестве ссылки, адреса и логического оператора, …

Однако, когда я пытался заставить работать функции генератора случайных чисел, я заметил еще одно использование&’характер, которого я не видел раньше … и нет явной документации об этом (по крайней мере, в Интернете).

Обратите внимание на ‘&’приходит в конце параметра mt19937&,

boost::variate_generator<boost::mt19937&, boost::uniform_int<> > die(gen, dist);

Что это? Я предполагаю, что это как-то используется как ссылка, но если я попытаюсь поставить&’перед параметром компилятор говорит, что это недопустимо.

Любое объяснение будет оценено.

NK.

3

Решение

Амперсанд перед переменной дает вам адрес этой переменной

int a = 3;
std::cout << &a << std::endl; // 0x12345678 or similar

Амперсанд после типа делает его ссылочным типом

int& b = a;
std::cout << b << std::endl; // 3
a = 4;
std::cout << b << std::endl; // 4

boost::mt19937 это тип, так boost::mt19937& является ссылочным типом для boost::mt19937, Выкладываю амперсанд перед (&boost::mt19937) не имеет смысла, потому что вы не можете получить адрес типа.

7

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector