目录
一、基本概念
二、特性
(一)特征
1. 函数名与类名相同
2. 无返回值(void也不行)
3. 对象实例化时编译器自动调用对应的构造函数
4. 构造函数可以重载
(二)举例:不利用构造函数初始化对象
(三)举例:利用构造函数初始化对象
(四)举例
1. 如果类中没有显式定义构造函数,则C++编译器会自动生成一个无参的默认构造函数
2. 一旦用户显式定义编译器将不再生成
3. 解决调用默认构造函数的方法
三、注意
#include
using namespace std;
class Date
{
private:int _year;int _month;int _day;
public:void Init(int year, int month, int day)//定义初始化函数{_year = year;_month = month;_day = day;}void Print()//打印函数{cout << _year << "-" << _month << "-" << _day << endl;}
};
int main()
{Date d1;d1.Init(2022, 8, 9);d1.Print();//2022-8-9return 0;
}
#include
using namespace std;
class Date
{
private:int _year;int _month;int _day;
public:Date(int year, int month, int day){_year = year;_month = month;_day = day;}void Print()//打印函数{cout << _year << "-" << _month << "-" << _day << endl;}
};
int main()
{Date d1(2022, 8, 9);//对象实例化时,自动调用构造函数d1.Print();//2022-8-9return 0;
}
//举例1:类中没有显式定义构造函数,则C++编译器会自动生成一个无参的默认构造函数
#include
using namespace std;
class Date
{
private:int _year;int _month;int _day;
public:void Print()//打印函数{cout << _year << "-" << _month << "-" << _day << endl;}
};
int main()
{Date d1;//d1调用系统生成的无参构造函数d1.Print();return 0;
}
#include
using namespace std;
class Date
{
private:int _year;int _month;int _day;
public:Date(){_year=0;_month = 1;_day = 2;}Date(int year, int month, int day){_year = year;_month = month;_day = day;}void Print()//打印函数{cout << _year << "-" << _month << "-" << _day << endl;}
};
int main()
{Date d1;d1.Print();Date d2(2022, 9, 14);d2.Print();return 0;
}
#include
using namespace std;
class Date
{
private:int _year;int _month;int _day;
public:Date(int year=2021, int month=1, int day=8){_year = year;_month = month;_day = day;}void Print()//打印函数{cout << _year << "-" << _month << "-" << _day << endl;}
};
int main()
{Date d1;d1.Print();Date d2(2022, 9, 14);d2.Print();return 0;
}