我是菜鸟,这是我的第一篇文章。
关于“&”字符,我理解它作为引用、地址和逻辑运算符的一般用法,...
然而,当我试图让 boost 随机数生成器函数工作时,我注意到我以前从未见过的“&”字符的另一种用法......也没有关于它的明确文档(至少在网络上)。
请注意,下面的“&”位于参数 mt19937& 的 END 处。
boost::variate_generator<boost::mt19937&, boost::uniform_int<> > die(gen, dist);
这是什么?我假设它以某种方式被用作参考,但如果我尝试将“&”放在参数前面,编译器会说这是不可接受的。
任何解释将不胜感激。
NK.
变量前的“&”给出了该变量的地址
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
) 没有意义,因为您无法获取类型的地址。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)