前言
在前面学习到了'类和对象'的四大默认成员函数(构造函数、析构函数、拷贝构造函数、赋值运算符重载),这四大默认成员函数也是我们在以后使用'类和对象'这块知识时经常遇到的。本章将会围绕着如何实现一个 Date 类,来让大家尽快学会编写和更加深刻理解关于'类'封装的思想在实际当中的应用!
本文会分板块逐一讲解,在文章的末尾放有本次实现 Date 类的全部源码。
1. 实现 Date 类的构造函数
所谓的'Date'翻译过来就是'日期'的意思,那它的成员变量一定是年月日。那我们就可以这么实现 Date 类的构造函数。
class Date {
public:
// 全缺省的默认构造函数
Date(int year = 1, int month = 1, int day = 1) {
_year = year;
_month = month;
_day = day;
}
private:
int _year; // 年
int _month; // 月
int _day; // 日
};
这里我们写成全缺省的默认构造函数是十分有讲究的,一方面当我们先使用这个缺省值时,我们就直接有类实例化出对象就行,不需要显式的传递参数;另一方面,当我们想用自己的传递的参数,就直接显式传递函数即可。一举两得。
2. 实现 Date 类的拷贝构造函数
class Date {
public:
// 全缺省的默认构造函数
Date(int year = 1, int month = 1, int day = 1) {
_year = year;
_month = month;
_day = day;
}
// 拷贝构造函数
Date(const Date& d) {
_year = d._year;
_month = d._month;
_day = d._day;
}
private:
int _year;
int _month;
int _day;
};


