我想写的程序是创建两个对象,分别显示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);
}
答案 0 :(得分:2)
你不能在表达式的中间声明一个变量,而且以下都是错误的。
cout << RandomNum four(1000,9000); << endl;
cout << RandomNum three(100,900); << endl;
将 main 的内容更改为首先声明four
和three
为RandomNum
类型的实例并根据需要初始化它们,然后再调用它们 cout-expressions 中的operator()
。
RandomNum four (1000,9000); // declaration of `four`
RandomNum three (100, 900); // declaration of `three`
cout << four () << endl;
cout << three () << endl;