我遇到了一些麻烦!我的目标是通过函数检查输入数字与素数列表是否为素数(在列表中)find()
。我还没有走到那一步。这是作业,所以我必须重载函数运算符并以这种愚蠢(恕我直言)的方式来做。到目前为止,这是我所拥有的:
using namespace std;
class isprime {
public: isprime() { /*nothing...yet?*/
}
bool operator()(int);
list <int> pnums(1, 2);
private: int expandList(int number);
};
bool isprime::operator()(int number) {
if (pnums.back() < number) {}
}
int isprime::expandList(int number) {
for (int j = pnums.back(); j = number; j++) {
for (int i = 2; i < sqrt(j); i++) {
if (j % i != 0) pnums.push_back(j);
}
}
}
int main() {
isprime pcheck;
int number;
while (cin >> number) {
if (pcheck(number)) cout << number << " is prime!\n";
}
}
这是我的错误:
prime2.cpp:12:错误:数字常量 prime2.cpp:12 之前的预期标识符:错误:数字常量prime2.cpp 之前
的预期','或'...'
:在成员函数'bool isprime::operator()( int)':
prime2.cpp:19:错误:'((isprime*)this)->isprime::pnums' 没有类类型
prime2.cpp:在成员函数'int isprime::expandList(int)'中:
prime2.cpp:23: 错误: '((isprime*)this)->isprime::pnums' 没有类类型
prime2.cpp:25: 错误: '((isprime*)this)->isprime::pnums ' 没有类类型
我不明白出了什么问题。谁能帮帮我?