关于约瑟夫生者死者游戏代码的解释

来源:百度知道 编辑:UC知道 时间:2024/06/23 15:54:40
下面是我别人帮我编写的一段代码,能帮我解释下吗
#include <iostream>
using namespace std;
class Joseph{
protected:
int number_of_people;//总人数
int step;//间隔数
public:
virtual void CreateOutput()=0;//声明并定义一个函数
Joseph(int n,int m){
number_of_people=n;
step=m;
}//构造函数
};

class JosephWithArray:public Joseph{
int *WorkingArray;//整形指针
int NextPeople(int prev);//挑出下一个人的函数
public:
JosephWithArray(int n,int m);
void CreateOutput();
~JosephWithArray(){delete[] WorkingArray;}//这句代码有什么作用?
};

JosephWithArray::JosephWithArray(int n,int m):Joseph(n,m){//这句代码的意思是什么?
WorkingArray = new int[n];
for(int i=0;i<n;i++)
WorkingArray[i]=i+1;//给数组初始化
}

void JosephWithArray::CreateOutput(){
int i;
int outnum=-1;//为什么是-1呢?
for(i=0;i<number_of_people;i++){
outnum = NextPeople(outnum);//这句代码什么意思?
cout << WorkingArray[outnum] <

int outnum=-1;//为什么是-1呢?
无所谓-1 只是一个初始值
travel=(travel+1)%number_of_people;
获取下一个人的位置编号
if(WorkingArray[travel])//这句代码什么意思?
count++;
这句话我也没懂...
有点累 这个代码也是很难看