1.类的默认的六个成员函数
如果一个类中什么都没有,简称为空类。空类中什么都没有吗?并不是的,任何一个类在我实现不的情况下,都会自动生成下面6个默认成员函数
默认成员函数:他们是特殊的成员函数,如果我们不实现,编译器会自己生成一份。
构造函数是一个特殊的成员函数,名字与类名相同,创建类型对象时由编译器自动调用,保证每个数据成员都有一个合适的初始值,并在对象的声明周期内只调用一次
2.构造函数
构造函数是特殊的成员函数,需要注意的是,构造函数虽然名字叫构造,这里也经常给我们一个误解,但是他并不是开辟空间创建对象,而是初始化对象
【构造函数特征】:
- 函数名与类名相同
- 无返回值
- 对象实例化时编译器自动调用对应构造函数
- 构造函数可以重载
- 如果类中没有显示定义构造函数,则C++编译器会自动生成一个无参的默认构造函数,一旦自己定义,编译器将不再生成
带参数构造函数,和上面的无参构造函数构成重载
class Date
{
public:
//无参构造函数
Date()
{
_year = 1;
_month = 1;
_day = 1;
}
//带参数构造函数,和上面的无参构造函数构成重载
Date(int year, int month, int day)
{
_year = year;
_month = month;
_day = day;
}
private:
int _year;
int _month;
int _day;
};
int main()
{
Date d1;
Date d2(2022, 1, 17);
return 0;
}
打一个断点调试发现可以运行,显示结果。
还要注意的是,在语法上无参和全缺省参数可以同时存在,因为够