C ++如何创建两个显示随机数10次的独立对象?

时间:2014-06-07 05:01:06

标签: c++ class random numbers generator

我想写的程序是创建两个对象,分别显示1000-9000和100-900之间的随机数。

我正在尝试编写我的第一个使用类和多个文件但有问题的C ++程序。我在main()函数的for循环中遇到错误;它表示在R'之前预期的初级表达。和'<<&#对于第二个for循环,使用' r'。

感谢任何帮助或指导:)

main.cpp中:

#include <iostream>
#include "Random.h"
#include <cstdlib>
#include <ctime>
using namespace std;

int main()
{
  srand(time(0));


  for(int i = 0; i < 10; ++i)
  {
      cout << RandomNum four(1000,9000); << endl;
  }

  for(int i = 0; i < 10; ++i)
  {
      cout << RandomNum three(100,900); << endl;
  }
}

Random.h:

#ifndef RANDOM_H
#define RANDOM_H

class RandomNum
{
    public:
        RandomNum(int ix, int iy);
        int operator ()();
        int operator ()(int ny);
        int operator ()(int nx, int ny);

        int x,y;
};

#endif

randomNum.cpp:

#include <iostream>
#include "randomInt.h"
#include <cstdlib>
using namespace std;

RandomInt::RandomInt(int ix, int iy):x(ix), y(iy)
{}

int RandomInt::operator()()
{
    return x + rand() % (y - x + 1);
}

int RandomInt::operator()(int ny)
{
    return x + rand() % (ny - x + 1);
}

int RandomInt::operator()(int nx, int ny)
{
    return nx + rand() % (ny - nx + 1);
}

1 个答案:

答案 0 :(得分:2)

问题

你不能在表达式的中间声明一个变量,而且以下都是错误的。

cout << RandomNum four(1000,9000); << endl;

cout << RandomNum three(100,900); << endl;

解决方案

main 的内容更改为首先声明fourthreeRandomNum类型的实例并根据需要初始化它们,然后再调用它们 cout-expressions 中的operator()

RandomNum four (1000,9000); // declaration of `four`
RandomNum three (100, 900); // declaration of `three`

cout << four () << endl;

cout << three () << endl;