我有些麻煩!我的目標是通過find()
函數根據素數列表來檢查輸入數字是否爲素數(在列表中)。我還沒有得到那麼多。這是作業,所以我必須重載函數操作符,並以這種啞(imho)方式進行操作。以下是我迄今:作爲班級成員列表
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: error: expected identifier before numeric constant
prime2.cpp:12: error: expected ',' or '...' before numeric constant
prime2.cpp: In member function 'bool isprime::operator()(int)':
prime2.cpp:19: error: '((isprime*)this)->isprime::pnums' does not have class type
prime2.cpp: In member function 'int isprime::expandList(int)':
prime2.cpp:23: error: '((isprime*)this)->isprime::pnums' does not have class type
prime2.cpp:25: error: '((isprime*)this)->isprime::pnums' does not have class type
我不明白什麼錯誤。任何人都可以幫我嗎?
修改類定義如何工作,特別是如何聲明類成員。 –
1次錯誤,並嘗試自己搞清楚。它比我們進來並提供更正版本更有用。 –
谷歌提示:構造函數初始化程序列表 –