当前位置: 首页 > news >正文

泉州手机网站建设价格网站建设哈尔滨网站建设1

泉州手机网站建设价格,网站建设哈尔滨网站建设1,网页制作视频教程自学网,wordpress添加菜单分类目录是灰的学习目标#xff1a; 加深对四个默认构造函数的理解#xff1a; 1.构造函数 2.析构函数 3.拷贝构造 4.运算符重载 实现功能 1.比较日期的大小 2.日期-天数 3.前/后置#xff0c;-- 这里基本会使用运算符重载 定义一个日期类 class Date { public://1.全缺省参数的构造函数Da…学习目标 加深对四个默认构造函数的理解 1.构造函数 2.析构函数 3.拷贝构造 4.运算符重载 实现功能 1.比较日期的大小 2.日期-天数 3.前/后置-- 这里基本会使用运算符重载 定义一个日期类 class Date { public://1.全缺省参数的构造函数Date(int year 1, int month 1, int day 1){_year year;_day day;_month month;}//2.构造拷贝函数Date(const Date x){_year x._year;_month x._month;_day x._day;}//3.析构函数这里可不构造~Date() {}//4.运算符重载bool operator(const Date x);private:int _year;int _month;int _day; }; 1.比较日期的大小 比较日期大小只用写大于等于或者小于等于其它功能去复用就行关系互斥 --功能声明 --等于实现 //等于(d1 d2;) bool Date::operator(const Date x) {return this-_year x._year this-_month x._month this-_day x._day; } --大于实现 //大于(d1d2) bool Date::operator(const Date x) {if ((_year x._year)|| ((_year x._year) (_month x._month))|| ((_year x._year) (_month x._month) (_day x._day)))return true;elsereturn false; } --小于等于 //小于等于d1d2 bool Date::operator(const Date x) {return !(*this x); } --大于等于 //大于等于 bool Date::operator(const Date x) {return (*this x) || (*this x); } --小于 //小于(d1d2) bool Date::operator(const Date x) {return !(*this x); } --不等于 //不等于 bool Date::operator!(const Date x) {return !(*this x); } 效果 2.日期-天数 准备工作日期-天数要考虑到进位借位以及闰年非闰年的月份天数问题 给出函数 --是否为闰年 //是否为闰年int is_leapyear(int year){if (((year % 4 0) (year % 100 ! 0)) || (year % 400 0)){return 1;}return 0;}--获取月分的天数   //获取每一个月份的天数int GetMonthDay(int year, int month){int month_day[13] { 0,31,28,31,30,31,30,31,31,30,31,30,31 };//存放每个月的月份int is_leap is_leapyear(year);if (is_leap month 2){return month_day[month] 1;//是闰年2月有29天}else{return month_day[month];//不是闰年且不是2月}} 功能声明 这里同样可以实现复用 写好后可以复用写好-可以复用- 为什么不是复用呢 --天数不改变原来日期会改变直接用复用的时候拷贝一份传后的即可 实现 日期天数 //日期天数(d1 100) Date Date::operator(int day) { if (day 0) {return *this - -day;}//1.直接将天数加到该日期的月数中去_day day;//2.判断是否超出当前月数的天数while (_day GetMonthDay(_year,_month)) {//3.超出就进位,重复_day - GetMonthDay(_year,_month);_month;//处理年份if (_month 13) {_month 1;_year;}}return *this; } 日期天数 //日期天数d1100 Date Date::operator(int day) {//不改变date拷贝一份Date ret(*this);ret day;return ret; } 日期-天数 //日期 - 天数( d1 - 100) Date Date::operator-(int day) {if (day 0) {return *this -day;}//1.天减去天_day - day;//2.判断是否违法违法向前面借while (_day 0){_month--;//借月数if(_month 0){_year--;_month 12;}//借天数_day GetMonthDay(_year, _month);}return *this; } 日期-天数 //日期 - 天数( d1 - 100) Date Date::operator-(int day) { //不改d1拷贝一下Date tmp(*this);tmp - day;return tmp; } 日期-日期 //日期-日期 - int Date::operator-(const Date d) {Date max *this;Date min d;int flag 1;//1.找出较小的日期if (*this min) {max d;min *this;flag -1;}int n 0;//2.让较小的日期一直直到等于较大的日期加了多少次它们就差了多少天while (min ! max) {min;n;}//flag用来处理大年减小年或小年减大年的情况return n*flag;} 赋值运算符重载() //赋值 void Date::operator(const Date x) {_year x._year;_month x._month;_day x._day; } 效果 3.前/后置-- 前/后置--会有歧义 如运算符重载后的到底是前置还是后置呢 这里使用函数重载解决改变形参来区分 这里说明一下为什么前置可以使用引用返回后置却不行 --前置会先改变d1再直接把d1传回去就行了 --后置会先使用原来的再所有要拷贝一份传回去的是拷贝的tmp出栈就销毁了所有不能传引用 : //前置 Date Date::operator() {*this 1;return *this; }//后置 Date Date::operator(int) {Date tmp(*this);*this 1;return tmp; } --: 1 //前置-- Date Date::operator--() {*this - 1;return *this; }//后置-- Date Date::operator--(int) {Date tmp(*this);*this - 1;return tmp; } 效果
http://www.ihoyoo.com/news/42144.html

相关文章:

  • 亚马逊网上购物商城盐城seo排名
  • 598网站建设整站系统
  • 淘宝客怎样做网站网站数据采集怎么做
  • 网站维护电话小程序定制开发和模板有什么区别
  • 网站添加 备案西安it培训机构
  • 网站数据库网络错误怎么解决方案网站建设发生的费用会计科目
  • 九江网站开发石家庄做淘宝网站
  • 电商网站建设培训学校游戏工作室网络组建方案
  • 网站制作价格低手机云电脑
  • 可信验证网站做网站负责人风险
  • 网站建设涉及和描述的一些问题wordpress手机底部联系插件
  • 建立公司网站的流程怎么做网站平台梦想
  • 白酒类网站模板车间管理系统
  • 系统官网网站模板下载桂林创新大厦网站
  • 广西南宁网络营销网站企业网站营销解决方案
  • 网站的建站流程cms网站设计
  • 游艇 高端网站建设网站制作自学网
  • 技术支持:洛阳网站建设广西桂林电子科技大学
  • 企业网站建设要注意哪方面免费视频网站app使用排名
  • 株洲网站建设 磐石网络国企500强完整名单
  • 泉州网站制作哪个好微wordpress图片视频主题
  • 全国网站建设公司有多少家wordpress关键词采集文章
  • 接外包项目的网站wordpress正文宽度
  • 唐山做网站公司哪家好网站建设幽默
  • 网络目标市场营销策略网站怎么做seo收录
  • 东莞做网站多少钱170个可带链接锚文本外链的网站论坛
  • 网站怎么推广和应用php网站开发软件编程
  • 网站做三屏合一网站是别人做的域名自己怎么续费
  • 网站站长指南icp网站备案系统
  • 河北省建设信息网站广宗企业做网站