类的构造函数
类的构造函数是类的一种特殊的成员函数,它会在每次创建类的新对象时执行。
构造函数的名称与类的名称是完全相同的,并且不会返回任何类型,也不会返回 void。构造函数可用于为某些成员变量设置初始值。
带参数的构造函数
默认的构造函数没有任何参数,但如果需要,构造函数也可以带有参数。
使用初始化列表来初始化字段
void Date::display(int m,int d,int y):month(m),day(d),year(y){
cout<<m<<"/"<<d<<"/"<<y<<endl;
}
上面语法等同于
void Date::display(int m,int d,int y){
month=m;
day=d;
year=y;
cout<<m<<"/"<<d<<"/"<<y<<endl;
}
实例:
#include<iostream>
using namespace std;
class Date{
public:
Date(int,int,int);
Date(int,int);
Date(int);
Date();
void display();
private:
int month;
int day;
int year;
};
Date::Date(int m,int d,int y):month(m),day(d),year(y){}
Date::Date(int m,int d):month(m),day(d){
year=2005;
}
Date::Date(int m):month(m){
day=1;
year=2005;
}
Date::Date(){
month=1;
day=1;
year=2005;
}
void Date::display(){
cout<<month<<"/"<<day<<"/"<<year<<endl;
}
int main(){
Date d1(10,13,2005);
Date d2(12,30);
Date d3(10);
Date d4;
d1.display();
d2.display();
d3.display();
d4.display();
return 0;
}
将构造函数改为默认参数
#include <iostream>
using namespace std;
class Date{
public:
Date(int=1,int=1,int=2005);
void display();
private:
int month;
int day;
int year;
};
Date::Date(int m,int d,int y):month(m),day(d),year(y){
}
void Date::display(){
cout<<month<<"/"<<day<<"/"<<year<<endl;
}
int main(){
Date d1(10,13,2005);
Date d2(12,30);
Date d3(10);
Date d4;
d1.display();
d2.display();
d3.display();
d4.display();
return 0;
}