我们生活中随处可见的玩骰子游戏,那么我们用C++的类实现出来时会是怎么样呢?
首先,是得到一个1-6之间随机数的写法
Random.h
#ifndef RANDOM__H__
#define RANDOM__H__
using namespace std;
#include <cstdlib>
#include <ctime>
class Random
{
public:
Random(); //先使用srand函数初始化
unsigned get_random_num(int top) const;//使用rand函数随机出一个0-top的数字
};
#endif
Random.cpp
#include"random.h"
Random::Random()
{
srand(static_cast<unsigned>(time(0)));
}
unsigned Random::get_random_num(int top) const
{
return std::rand() % top; //使用rand函数随机出一个0-top的数字
}
接着是对这个随机数的一些封装的操作:
Roll.h
#ifndef ROLL__H__
#define ROLL__H__
#include"random.h"
using namespace std;
class Roll
{
public:
Roll(int num = default_num);
Roll& toss(); //摇骰子函数,得到随机数
int get_number_of_sides()const; //获取随机数的上限
unsigned get_face_value() const; //获取随机数的数值
static int get_default_num(); //获取默认值
private:
Roll(const Roll& r);
int const number_of_sides; //表示随机数的上限
unsigned face_value; // 用于保存Rand类随机出的随机数
unsigned