接口
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,它们是常量数据成员?
答案 0 :(得分:2)
如果函数randomInt()
返回一个随机整数,则可以将常量成员初始化为其返回值:
FireSimulator::FireSimulator()
: w()
, x(randomInt())
, y(randomInt())
{}
对于非加密随机性,如果使用rand()
播种,则C标准库srand()
函数可能足够适合您的情况。这两个功能可从#include <cstdlib>
获得。在C ++ 11中,还在<random>
中提供了自己的随机生成方法(参见this question)。