学校里出了一道题,我写出了这样的代码
#include<iostream>
using namespace std;
class SPrime{
private:
int a[1001];
int n;
public:
SPrime(){
n=0;
}
bool prime(int x){
for(int i=2;i*i<=x;i++)
if(x%i==0) return false;
return true;
}
void isSPrime(){
for(int i=1000;i<=9999;i++){
int t=i;
bool isit=true;
while(t){
if(!prime(t)){
isit=false;
break;
}
t/=10;
}
if(isit) a[++n]=i;
isit=true;
}
return ;
}
void show(){
for(int i=1;i<=n;i++){
cout<<a[i]<<' ';
if(i%6==0) cout<<endl;
}
return ;
}
};
int main(){
SPrime e;
e.isSPrime();
e.show();
return 0;
}
这份代码不会报错且可以通过,但是如果要是使用了构造函数,也就是这样
int main(){
SPrime e();
e.isSPrime();
e.show();
return 0;
}
就会报错,报错信息为 [Error] request for member 'isSPrime' in 'e', which is of non-class type 'SPrime()'
想问问洛咕大佬们这是什么情况