构造函数的语法格式:
<类名>(<参数表>)
{
<函数体>
}
注意事项:
构造函数的函数名必须与类名相同
构造函数没有返回值其功能是将对象中的所有数据成员进行初始化,一般由一系列赋值语句构成
由系统在声明对象时自动调用
#include <iostream>
using namespace std;
class Date
{
int year,month,day;
public:
Date(int y=1900,int m=1,int d=1)//构造函数名与类名相同
{
year=y,month=m,day=d;
}
void init(int,int,int);//初始化函数
void print_ymd();//输出ymd
void print_mdy();//输出mdy
};
void Date::init(int yy,int mm,int dd)
{
month=(mm>=1&&mm<=12)?mm:1;
year=(yy>=1900&&yy<=9999)?yy:1900;
day=(dd>=1&&dd<=30)?dd:1;
}
void Date::print_ymd()
{
cout<<year<<"-"<<month<<"-"<<day<<endl;
}
void Date::print_mdy()
{
cout<<month<<"-"<<day<<"-"<<year<<endl;
}
int main()
{
Date date1;//创建一个日期类对象,并初始化
date1.print_ymd();//显示初始化数据的情况
date1.init(2006,3,28);//修改数据成员
date1.print_ymd();//显示修改情况
Date date2(2013,11,26);//在创建一个日期对象,并初始化
date2.print_mdy();
date2.init(2006,13,38);
date2.print_mdy();
return 0;
}
输出结果
1900-1-1
2006-3-28
11-26-2013
1-1-2006