c++中如果定义了带参数的构造函数,那么在定义对象时,必须初始化吗?
#include<iostream>usingnamespacestd;classDate{private:intyear,month,day;public:Date(i...
#include<iostream>
using namespace std;
class Date
{
private:
int year,month,day;
public:
Date(int a,int b,int c)
{
year=a;
month=b;
day=c;
}
Date(){}
void Set(int a,int b,int c)
{
year=a;
month=b;
day=c;
}
void Getdate()
{
cout<<year<<"年"<<month<<"月"<<day<<"日";
}
void Function();
};
void Date::Function(){
int a=1;
if((year%400==0)||((year%100!=0)&&(year%4==0)))
{a=0;}
if((month==1)||(month==3)||(month==5)||(month==7)||(month==8)||(month==10)||(month==12))
{
if(day!=31)
day=day+1;
else
{day=1;
month=month+1;
if(month>12)
{month=1;
year=year+1;}
}
}
else
if((month==4)||(month==6)||(month==9)||(month==11))
{if(day!=30)
day=day+1;
else
{day=1;
month=month+1;}
}
else
if(month==2)
{
if(a=1)
{
day=day+1;
if(day>28)
{
day=1;
month++;
}
}
}
if(a==0)
{
day=day+1;
if(day>29)
{
day=1;
month++;
}
}
}
int main()
{
Date a;
int YEAR,MONTH,DAY;
cout<<"输入年月日"<<endl;
cin>>YEAR>>MONTH>>DAY;
cout<<endl;
a.Set(YEAR,MONTH,DAY);
a.Function();
a.Getdate();
return 0;
}
这是个定义的日期加一天能输出第二天的日子 我如果不定义空参的构造函数就会报错,或者把构造函数去了,用成员函数赋值,这是不是我问的东西呢? 展开
using namespace std;
class Date
{
private:
int year,month,day;
public:
Date(int a,int b,int c)
{
year=a;
month=b;
day=c;
}
Date(){}
void Set(int a,int b,int c)
{
year=a;
month=b;
day=c;
}
void Getdate()
{
cout<<year<<"年"<<month<<"月"<<day<<"日";
}
void Function();
};
void Date::Function(){
int a=1;
if((year%400==0)||((year%100!=0)&&(year%4==0)))
{a=0;}
if((month==1)||(month==3)||(month==5)||(month==7)||(month==8)||(month==10)||(month==12))
{
if(day!=31)
day=day+1;
else
{day=1;
month=month+1;
if(month>12)
{month=1;
year=year+1;}
}
}
else
if((month==4)||(month==6)||(month==9)||(month==11))
{if(day!=30)
day=day+1;
else
{day=1;
month=month+1;}
}
else
if(month==2)
{
if(a=1)
{
day=day+1;
if(day>28)
{
day=1;
month++;
}
}
}
if(a==0)
{
day=day+1;
if(day>29)
{
day=1;
month++;
}
}
}
int main()
{
Date a;
int YEAR,MONTH,DAY;
cout<<"输入年月日"<<endl;
cin>>YEAR>>MONTH>>DAY;
cout<<endl;
a.Set(YEAR,MONTH,DAY);
a.Function();
a.Getdate();
return 0;
}
这是个定义的日期加一天能输出第二天的日子 我如果不定义空参的构造函数就会报错,或者把构造函数去了,用成员函数赋值,这是不是我问的东西呢? 展开
展开全部
你的问题解决了,不过大家的回答还是有点问题的,都说不定义构造函数,编译器会自动生成一个无参数的构造函数,其实这个是不对的,只是在有些情况下才会生成。具体大家可以上网找找资料看下。http://wenku.baidu.com/view/84d3458a6529647d272852dc.html
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询