【C++】————类和对象(下)

 9efbcbc3d25747719da38c01b3fa9b4f.gif

                                                      作者主页:     作者主页

                                                      本篇博客专栏:C++

                                                      创作时间 :2024年6月25日

9efbcbc3d25747719da38c01b3fa9b4f.gif

一、日期类

首先我们先来看一下通过类实现对日期的一系列处理,同时给大家说一下当中存在的一些细节问题:

1.1 GetMonthDay函数

这个函数的作用就是我们输入一个得到某一年某个月的天数,对后续的一些函数有着非常重要的作用,但我们要记得一个特殊情况,那就是闰年,因为闰年的二月是29天,非闰年是28天,注意这种情况就可以写代码了。

// 获取某年某月的天数
int GetMonthDay(int year, int month)
{
	//日期数组
	int MonthDayarr[13] = { 0,31,28,31,30,31,30,31,31,30,31,30,31 };
	//判断闰年
	if (2 == month && ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0))
	{
		return MonthDayarr[2] + 1;
	}
	else
	{
		return MonthDayarr[month];
	}
}

这里我们要注意的点就是先判断是不是二月,不是二月我们就没有必要去判断是否是闰年了,没必要了就,这样会节省很多时间。

1.2日期类中的两种构造函数

全缺省构造:

这里我们要给大家讲两种类型的构造函数,一种是全缺省构造函数,另一种是拷贝构造函数,这两种函数不清楚是啥的话可以去看这篇博客:构造函数和全缺省构造函数

我怕们先来说全缺省构造函数:

// 全缺省的构造函数
Date(int year = 1900, int month = 1, int day = 1)
{
	_year = year;
	_month = month;
	_day = day;

	//检查日期是否合法
	if (!(year >= 1
		&& (month >= 1 && month <= 12)
		&& (day >= 1 && day <= GetMonthDay(year, month))))
	{
		cout << "日期非法" << endl;
	}
}

这就是全缺省构造函数,如果传过来值,就赋值,否则就用默认给定的值,在平常的写代码过程中,我还是建议大家去写这种构造函数,因为这种构造函数满足的场景更加多样,不传值也可以,传值当然也可以。

Date d1(2024, 6, 23);
Date d2;
Date d3(2024, 12);

像这样的传值方式都是可以的 

 拷贝构造:

接下来看一下拷贝构造函数:

// 拷贝构造函数
// d2(d1)
Date(cons
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值