#include<iostream>
using namespace std;
class DDate{
private:
int year;
int month;
int day;
public: DDate(int a,int b,int c): year(a),month(b),day(c){
}
int isLeap();
};
int DDate::isLeap(){
int ret;
if(year%4==0&&year%100!=0||year%400==0){
ret = 1;
}else{
ret = 0;
}
return ret;
}
int main(){
int year;
int month;
int day;
DDate final(year,month,day);
cin>>year>>month>>day;
int x;
if(final.isLeap()==1){
cout<<"yes"<<endl;
}else{
cout<<"no"<<endl;
}
return 0;
}
因为你的构造函数赋值是在输入之前进行的
应该写成
cin>>year>>month>>day;
DDate final(year,month,day);