Я пишу программу, в которой вы можете дать объекту целое число, и оно вычисляет следующее большее простое число. Задача состоит в том, чтобы перегрузить префиксный оператор и использовать его в конструкторе, так что если я создаю объект и присваиваю ему номер 11, он должен хранить следующее большее простое число (13).
перегрузка моего оператора выглядит следующим образом:
cPrimZahl& cPrimZahl::operator++()
{
nextprim = prim;
while (!is_Prime(nextprim))
{
++nextprim;
if (nextprim > 10000)
{
while (!is_Prime(nextprim))
{
--nextprim;
}
prim = nextprim;
break;
}
prim = nextprim;
}
cout << "die naechst groessere Primzahl ist: " << prim << endl;
return *this;
}
main:
int main(){
cPrimZahl obj(13); // The object here is 13 now
++obj1; // Here its 17
return 0;
}
мой конструктор:
cPrimZahl::cPrimZahl(int prim_in)
{
if (prim_in > maxprim) // maxprim = 10000
{
cout << "Prime number is to big! Adjusting..." << endl;
prim = 1;
}
else if (prim_in < 0)
{
cout << "Prime number can't be negative! Adjusting..." << endl;
prim = 1;
}
prim = prim_in;
++prim; // at this point i want it to increment to give me the next bigger prime number
}
я много пробовалметоды сейчас, но я всегда получаю регулярное приращение ... Перегрузка оператора предшествует конструкции, но я также пытался поместить конструктор перед перегрузкой, ни одна из них не работает. Что еще я могу сделать?