0
与通使用参数作为一个unsigned int我有一些C++代码:不能参照C++
#include <bjarne/std_lib_facilities.h>
double random(unsigned int &seed);
int main()
{
int seed = 42;
cout << random((unsigned int)seed) << endl;
}
double random(unsigned int &seed)
{
const int MODULUS = 15749;
const int MULTIPLIER = 69069;
const int INCREMENT = 1;
seed = ((MULTIPLIER * seed) + INCREMENT) % MODULUS;
return double (seed)/MODULUS;
}
我得到一个错误,当我尝试编译:
error: invalid initialization of non-const reference of type ‘unsigned int&’ from an rvalue of type ‘unsigned int’
cout << random((unsigned int)seed) << endl;
我不请理解为什么我不能使用int seed
作为函数random
的参数。我甚至试图将type-casting
的int变成一个unsigned int参数。我不能使unsigned int &seed
参数为const
变量,因为我在函数内改变它的值。提前致谢!
演员阵容之后,你不再有一个左值了。你不能非const引用一个铸造值。首先定义一个'unsigned int'变量。 –
不要使用C风格的转换,它们适用于传统代码。 –