关于构造函数
  • 板块学术版
  • 楼主entity
  • 当前回复5
  • 已保存回复5
  • 发布时间2024/11/29 18:39
  • 上次更新2024/11/29 20:32:52
查看原帖
关于构造函数
225964
entity楼主2024/11/29 18:39

学校里出了一道题,我写出了这样的代码

#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()'

想问问洛咕大佬们这是什么情况

2024/11/29 18:39
加载中...