gpt4 book ai didi

c++ - 如何随机初始化常量数据成员?

转载 作者:搜寻专家 更新时间:2023-10-31 02:16:49 25 4
gpt4 key购买 nike

界面

class FireSimulator
{
Landscape **forest;
Weather w;
static int statistics;
const int x;
const int y;

public:
FireSimulator();
FireSimulator(Weather&, int, int);

void setBoundary();
void Print();
};

实现

FireSimulator::FireSimulator() : w(),x(0),y(0)
{}

FireSimulator::FireSimulator(Weather& W, int X, int Y): w(W), x(X),y(Y)
{
forest=new Landscape *[x];
for(int i=0; i<x; i++)
{
forest[i]=new Landscape[y];
}
}

void FireSimulator::setBoundary()
{}

void FireSimulator::Print()
{}

int FireSimulator::statistics=0;

这会动态设置景观类型的森林。

我如何使用随机化将树木散布在森林周围?

如何在构造函数中随机初始化 x 和 y,它们是常量数据成员?

最佳答案

如果你有一个函数 randomInt()返回一个随机整数,您可以将常量成员初始化为其返回值:

FireSimulator::FireSimulator()
: w()
, x(randomInt())
, y(randomInt())
{}

对于非加密随机性,C 标准库 rand()如果用 srand() 很好地播种,函数可能对你的情况足够好.这两个功能可从 #include <cstdlib> 获得.在 C++11 中也提供了自己的随机数生成方法 <random> (参见 this question)。

关于c++ - 如何随机初始化常量数据成员?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36526493/

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