📚 构造函数是一个特殊的成员函数,名字与类名相同,创建类类型对象时由编译器自动调用。
能够保证每个数据成员都有一个合适的初始值,并且在对象的生命周期内只调用一次。
构造函数的意义:能够保证对象被初始化。
构造函数是特殊的成员函数,主要任务是初始化,而不是开空间。 (虽然构造函数的名字叫构造)
🔑 解读:不给参数时就会调用无参构造函数,给参数则会调用带参构造函数。
class Date {
public:
/* 全缺省 */
//构造函数的全缺省形式。
Date(int year = 0, int month = 1, int day = 1) {//直接在这里初始化。
_year = year;
_month = month;
_day = day;
}
void Print() {
printf("%d-%d-%d\n", _year, _month, _day);
}
private:
int _year;
int _month;
int _day;
};
int main(void)
{
Date d1; // 如果不传,就是缺省值,后面是不用加括号的。
Date d2(2022, 1, 15);
Date d3(2009);
Date d4(2012, 4);
d1.Print(); // 0-1-1
d2.Print(); // 2022-1-15
d3.Print(); // 2009-1-1
d4.Print(); // 2012-4-1
return 0;
}
📚 任何一个类的默认构造函数,只有三种:
① 无参的构造函数
② 全缺省的构造函数
③ 我们不写,编译器自己生成的构造函数
💬 如果你没有自己定义构造函数(类中未显式定义),
C++ 编译器会自动生成一个无参的默认构造函数。
当然,如果你自己定义了,编译器就不会帮你生成了。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)