gpt4 book ai didi

c++ - 将类作为参数传递c++

转载 作者:行者123 更新时间:2023-12-02 01:31:22 25 4
gpt4 key购买 nike

我是编程新手,刚开始学习 C++ 几周,我目前正在做随机数的事情,但我不明白为什么参数有时有“()”有时没有,希望有人能解释一下我,谢谢!.

int main()
{
random_device rd;
mt19937 rdn(rd()); //Why this parameter needs "()"?
uniform_int_distribution<int> maxrd(1, 5000);

int n = maxrd(rdn); //And why this parameter doesn't need "()"?

cout << n;
};

最佳答案

案例1

mt19937 rdn(rd());

在上述声明中,rd()使用(调用)重载的 std::random_device::operator()然后将其返回值用作 mt19937 的参数的构造函数。

基本上是括号()用于调用 operator()std::random_device 。也就是说,这里的括号 () rd之后那里是因为我们想要传递 rd() 的返回值作为参数而不是 rd本身。

案例2

int n = maxrd(rdn);

在上面的语句中,我们调用 std::uniform_int_distribution::operator()这需要 Generator作为参数,所以我们传递 rdn作为自 rdn 以来的参数已经是一个生成器了。

请注意,我们使用()之后rdn因为我们想通过rdn作为参数,而不是 rdn() 的返回值.

关于c++ - 将类作为参数传递c++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73216135/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com